我的应用程序想要调用来自另一个AppDomain的类的方法。
AppDomain env = AppDomain.CreateDomain(
"test",
null,
new AppDomainSetup() { ApplicationName = "test" }
);
Assembly a = Assembly.LoadFrom("d:\\testenv1\\test2.dll");
//env.AssemblyResolve += new ResolveEventHandler(env_AssemblyResolve);
env.Load(a.FullName);
ObjectHandle o = env.CreateInstance(a.FullName, "Test2.Class1");
现在我有了Test2.Class1的对象句柄,但我不知道如何调用Class1类的“action”方法。
“行动”方法喜欢这样:
public void action()
{
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName + " ok");
}
我试图使用o.unwrap()方法来获取对象的引用,但似乎对象已被转移到当前域中,因此“action”方法的输出将打印当前域名。 / p>