Как программно загрузить *.resource.dll из GAS?
От: mDmitriy Россия  
Дата: 13.09.24 15:29
Оценка:
Всем привет!

Есть проект .Net Framework 4.8, WinForm

Как известно, при первой загрузке форма загружается дольше чем при всех последующих вызовах, что связано в подгрузкой разных ресурсов в кеш.
Когда разница во времени между первым вызовом и последующими становится дискомфортной, появляется задача первый вызов ускорить.
Самый простой способ — загрузить требуемые формой dll в фоновом потоке при старте программы.
Для обычных dll это просто, а вот как загрузить ресурсную dll?

В моем случае форма при первом вызове загружает "System.ServiceModel.resource.dll" (идет вызов WCF), что вызывает заметное глазу торможение.
Где конкретно происходит ее вызов и кто ее вызывает — установить не удалось (видимо таки из System.ServiceModel.dll, но это не точно).

Я знаю, что можно загрузить dll классическим методом:
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef)

Ро где взять AssemblyName (System.ServiceModel.resources, Version=4.0.0.0, Culture=ru, PublicKeyToken=b77a5c561934e089)?
Законопачивать эту строчку в код не хочется, потом не оберешься проблем.

Любые идеи приветствуются

PS. Предварительный вызов пустого метода WCF в том же фоновом потоке, наверно, решит проблему (хотя и только для этой dll), но уж слишком извратно
Отредактировано 13.09.2024 15:29 mDmitriy . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.