1
似たような回答がたくさんあることは知っていますが、どれも私には適していません。私はMyLibraryというクラスライブラリを持っています。 1つのタイプしかありません。自分のタイプのインスタンスを別のappdomainに作成して、なぜActivatorを使用しないのかを考えます。異なる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.");
}
}
私は単純なコンソールアプリケーションを作成しました。これは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"});
}
Helloメソッドを呼び出す正しい方法は何ですか?テスト型から静的メソッドを作成して呼び出すことはできますが、静的インスタンスメソッドでは何もできません。