как вызвать метод класса из другого домена приложения
мое приложение хочет вызвать метод класса из другого AppDomain.
AppDomain env = AppDomain.CreateDomain(
"test",
null,
new AppDomainSetup() { ApplicationName = "test" }
);
Assembly a = Assembly.LoadFrom("d:testenv1test2.dll");
//env.AssemblyResolve += new ResolveEventHandler(env_AssemblyResolve);
env.Load(a.FullName);
ObjectHandle o = env.CreateInstance(a.FullName, "Test2.Class1");
теперь у меня есть дескриптор объекта Test2.Class1, но я понятия не имею, как инводировать метод "action" класса Class1.
метод "действие" любит это:
public void action()
{
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName + " ok");
}
Я попытался использовать o.метод unwrap () для получения ссылки на объект, но кажется, что объект был перенесен в текущий домен, поэтому вывод метода " action печать текущего доменного имени.
1 ответов
отметьте объект, который вы хотите использовать для перекрестной связи appdomain как MarshalByRefObject.