У меня есть пара библиотек ресурсов, которые я загружаю в настоящее время, когда приложение начинает использовать следующий код:
Assembly ass = Assembly.LoadFrom(fi.FullName);
Type t = ass.GetTypes()[0];
string ns = t.Namespace;
BaseFacade bf = Activator.CreateInstance(t) as BaseFacade;
// bf.GoWild()...
Когда у меня есть этот BaseFacade, я без ума от вызова функций для получения ресурсов из DLL, и все это прекрасно работает. Однако этот начальный LoadFrom очень медленный, и для 10 DLL у меня это занимает более 30 секунд.
Итак, мне было интересно альтернативные подходы? Есть ли? Мне было интересно, если это возможно сделать что-то вроде:
[DllImport("myResources1.dll")]
public static extern void GoWild();
[DllImport("myResources2.dll")]
public static extern void GoWild();
?? Если это возможно, как бы я раскрыл эти функции GoWild для библиотек ресурсов? Кроме того, как бы я указал приложению на местоположение библиотек DLL, учитывая, что они не всегда находятся в каталоге основной библиотеки DLL (и пользователь имеет возможность перемещать эти библиотеки DLL)?
Спасибо за любые советы по этому вопросу!