Moja aplikacja chce wywołać metodę klasy pochodzącą z innego AppDomain.jak wywołać metodę klasy z innej aplikacjiDomain
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");
teraz mam uchwyt obiektowego Test2.Class1, ale nie mam pojęcia jak invode „akcja” metody klasy Class1.
„akcja” metoda lubi to:
public void action()
{
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName + " ok");
}
Próbuję użyć o.unwrap() aby uzyskać odniesienie do obiektu, ale wydaje się, że obiekt został przeniesiony do aktualnej kategorii więc wynik działania "action" powoduje wypisanie bieżącej nazwy domeny.
Dlaczego otrzymuję "FileNotFoundException" podczas wykonywania kodu? Zestawu nie można załadować do testowej aplikacji. Czy ma silne imię? –