Je sais qu'il y a beaucoup de réponses similaires, mais aucune ne me convient. J'ai une bibliothèque de classe appelée MyLibrary. Il a seulement un type. Je vais créer une instance de mon type dans un autre domaine pour lequel je n'utilise pas Activator.Comment faire pour invoquer la méthode d'instance de la bibliothèque de classes dans différents appdomain?
public class Test
{
public Test()
{
Console.WriteLine("Ctor of Test type.");
}
public void Hello(string name)
{
Console.WriteLine($"Hello {name}! I'm an instance method.");
}
}
J'ai créé une application console simple. Ceci est un code de la méthode Main.
static void Main(string[] args)
{
string path = @"example of my path";
AppDomain domain = AppDomain.CreateDomain("mydomain");
Assembly mylibrary = Assembly.LoadFrom(path);
Type typeOfTest = mylibrary.GetType("MyLibrary.Test");
var instanceOfTest = domain.CreateInstanceFrom(path, typeOfTest.FullName);
MethodInfo hello = typeOfTest.GetMethod("Hello");
hello.Invoke(instanceOfTest, new object[] {"Bob"});
}
Quelle est la bonne méthode pour appeler la méthode Hello? Je peux créer et appeler une méthode statique à partir du type Test mais je ne peux rien faire avec la méthode d'instance non statique?