2010-10-01 14 views
8

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.

+0

Dlaczego otrzymuję "FileNotFoundException" podczas wykonywania kodu? Zestawu nie można załadować do testowej aplikacji. Czy ma silne imię? –

Odpowiedz

Powiązane problemy