Étant donné une DLL .NET constituée d'une classe "Place" et d'une fonction "Où" renvoyant un entier; J'ai besoin de charger la DLL dans un domaine d'application, d'exécuter la fonction et de décharger le domaine d'application.Exécution d'une fonction dans un domaine d'application
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)
Cette ligne échoue:
Dim asy As Assembly = domain.Load(buffer)
Avec ce message d'erreur:
'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.'
Le fichier est dans le tampon, donc je devine que c'est une .dll dépendance. Cependant, il devrait trouver ceux dans le répertoire du programme de base.
Des idées sur la cause de l'erreur?
N'importe quel exemple de code testé pour charger un assembly dans un AppDomain, Exiger une fonction, puis décharger le AppDomain serait apprécié.
(BTW, j'ai googlé et n'ont pas trouvé de utiles échantillons.)