2010-10-01 18 views
8

mi aplicación que desee llamar a un método de una clase que es de otro dominio de aplicación.cómo llamar a un método de una clase de otro dominio de aplicación

 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"); 

ahora tengo el mango objeto de la Test2.Class1, pero no tengo ni idea de cómo invode el método de la "acción" de la clase Class1.

el método de la "acción" le gusta esto:

public void action() 
    { 
     Console.WriteLine(AppDomain.CurrentDomain.FriendlyName + " ok"); 
    } 

i intentado utilizar o.unwrap() para obtener la referencia del objeto, pero parece que el objeto ha sido transferido en el dominio actual, por lo tanto, el resultado del método de "acción" imprime el nombre de dominio actual.

+0

¿Por qué obtengo 'FileNotFoundException' mientras ejecuto el código? El ensamblaje no se puede cargar en el dominio de prueba de la aplicación. ¿Tiene un nombre fuerte? –

Respuesta

Cuestiones relacionadas