Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2017, 23:59   #1
ZnZ
Пользователь
 
Регистрация: 14.06.2017
Сообщений: 45
По умолчанию Uri, как через него получить ресурс из dll?

Всем привет, возле моего .exe лежит DAC Compendium 2015.dll
В ресурсах dll есть папка с gif файлами
Из приложения с чихлю dll, и получаю список всех .gif.
Код:
private void loadSmiles(string path)
        {
            Assembly assembly = Assembly.LoadFile( new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName + '\\' + path);
            //Assembly assembly = Assembly.GetExecutingAssembly();
            Type[] interf = assembly.GetTypes()[0].GetInterfaces();
            if (interf != null && interf.Contains(typeof(ISmilePack)))
            {
                var stream = assembly.GetManifestResourceStream(assembly.GetName().Name + ".g.resources");

                if (stream != null)
                {
                    var resourceReader = new ResourceReader(stream);

                    foreach (DictionaryEntry resource in resourceReader)
                    {
                        string ext = new FileInfo(resource.Key.ToString()).Extension;
                        if (ext.Equals(".gif") || ext.Equals(".png") || ext.Equals(".jpg"))
                        {
                            MediaElement media = new MediaElement() {
                                Width = 32,
                                Height = 32
                            };
                            //Uri uri = new Uri("/" + assembly.GetName().Name + ";component/" + resource.Key.ToString(), UriKind.Relative);

                            Uri uri = new Uri("pack://siteoforigin:,,,/" + resource.Key.ToString(), UriKind.Relative);
                            media.Source = uri; // Тут у меня кривой uri, прабл тут)
                            stack.Children.Add(media);
                        }
                    }
                }
            }
        }
В переменной resource лежит такой ключ "dac_compendium_2015/dac15_frog.gif"

Как правильно построить Uri который будет ссылаться на файл внутри ресурсов?
Dll не подключена в сам .exe, и таких dll у меня будет много
Изображения
Тип файла: png Screenshot_4.png (7.3 Кб, 41 просмотров)
ZnZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу получить email из Vkontakte при аутентификации через него Yan9 PHP 2 23.10.2015 00:16
Ресурс из DLL volod3000 Общие вопросы Delphi 11 14.07.2015 13:34
MediaPlayer.create(Context context, Uri uri) - какой Context? motorway Мобильные ОС (Android, iOS, Windows Phone) 14 12.07.2013 01:16
Webbrowser и как скопировать данные сайта через него? NickForm Работа с сетью в Delphi 0 12.12.2011 06:59
DLL, type RECORD, как передать данные в него? Человек_Борща Общие вопросы Delphi 3 08.09.2011 02:25