Ответьте на мой вопрос, что у меня уже есть stackoverflow, но я просто не могу найти правильный/не получить его для работы.Использование AppDomain для загрузки сборки
Что я пытаюсь сделать, загрузите .dll в мою Windows-форму, используйте отражение, чтобы получить имена методов/классов. У меня есть работа с Assembly.LoadFrom
, но он делает именно то, что я хотел, поскольку это блокирует файл .dll.
Я прочитал и узнал, что AppDomain
может сделать трюк, однако я просто не могу заставить его сделать трюк.
Ниже приведен код, который я пробовал, однако, в CreateInstanceFromAndUnwrap
, я не знаю, который typeName
он ищет.
var executableFilePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
AppDomain domain = AppDomain.CreateDomain(
DllPath,
null,
new AppDomainSetup
{
ApplicationBase = Path.GetPathRoot(executableFilePath),
PrivateBinPathProbe = string.Empty,
PrivateBinPath = string.Join(";", DllPath, executableFilePath),
ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
});
var temp = domain.CreateInstanceFromAndUnwrap(DllPath, typeof(????).FullName, false,
BindingFlags.Default, null, null, null, null);
.dll, загружаемый во время выполнения, не будет ссылаться на мое приложение Windows Form.
Является ли ваши Forms-App в том же App-домен? Недавно созданный и загруженный материал не будут автоматически разрешены для первоначального домена приложения –
Как это проверить? –