Tengo una propiedad cuya instancia quiero pertenecer a otro dominio.CreateInstanceAndUnwrap y dominio
public ModuleLoader Loader
{
get
{
if(_loader == null)
_loader = (ModuleLoader)myDomain.CreateInstanceAndUnwrap(
this.GetType().Assembly.FullName,
"ModuleLoader",
false,
System.Reflection.BindingFlags.CreateInstance,
null,
null,
null,
null);
System.Diagnostics.Debug.WriteLine("Is proxy={0}",
RemotingServices.IsTransparentProxy(_loader));
//writes false
_loader.Session = this;
return _loader;
}
}
Esto funciona bien. Pero supongo que todas las llamadas a métodos en la instancia _loader invocarán en otro dominio (myDomain). Pero cuando ejecuto el siguiente código, todavía escribe el dominio principal de la aplicación.
public void LoadModule(string moduleAssembly)
{
System.Diagnostics.Debug.WriteLine("Is proxy={0}",
RemotingServices.IsTransparentProxy(this));
System.Diagnostics.Debug.WriteLine(
AppDomain.CurrentDomain.FriendlyName);
System.Diagnostics.Debug.WriteLine("-----------");
}
¿Es por Unwrap()? Donde estoy haciendo mal?
Entiendo que AppDomain crea una memoria separada. Lo que necesito es que mi aplicación principal se ejecute, carga módulos en diferentes dominios de aplicaciones. Dado que la aplicación principal también desea ver alguna actividad de módulos e interactuar con objetos que se ejecutan en un dominio independiente, ¿cuál es la mejor manera de lograrlo?
Desearía poder agregar +100 – Igorek