Учитывая .NET DLL, которая состоит из класса «Place» и функции «Where», которая возвращает целое число; Мне нужно загрузить dll в домен приложения, выполнить функцию и выгрузить домен приложения.
Dim domain As AppDomain = AppDomain.CreateDomain("Executor")
Dim buffer() As Byte = IO.File.ReadAllBytes("c:\path\Locator.dll")
Dim asy As Assembly = domain.Load(buffer)
Dim obj As [Object] = asy.CreateInstance("Locator.Place")
Dim method As MethodInfo = obj.GetType.GetMethod("Where")
Dim result as Integer = method.Invoke(obj, New [Object]() { 1 })
AppDomain.Unload(domain)
Ошибка этой строки:
Dim asy As Assembly = domain.Load(buffer)
С этим сообщением об ошибке:
'Could not load file or assembly 'Place, Version=1.0.0.0, Culture=neutral, PublicKeyToken-null' or one of it's dependencies. The System Cannot find the specified file.'
Файл находится в буфере, поэтому я предполагаю, что это зависимость .dll. Однако он должен найти их в каталоге базовой программы.
Есть какие-либо идеи относительно причины ошибки?
Буду признателен за любой протестированный пример кода для загрузки сборки в домен приложения, извлечения функции и выгрузки домена приложения.
(Кстати, я гуглил и не нашел полезных образцов.)