Me gustaría saber, si tengo una variable, por ejemplo, una cadena, cómo pasar su valor a mi nuevo dominio de aplicación:cómo pasar una variable de un dominio de aplicación a otra
static string _str;
static void Main(string[] args) {
_str = "abc";
AppDomain domain = AppDomain.CreateDomain("Domain666");
domain.DoCallBack(MyNewAppDomainMethod);
AppDomain.Unload(domain);
Console.WriteLine("Finished");
Console.ReadKey();
}
static void MyNewAppDomainMethod() {
Console.WriteLine(_str); //want this to print "abc"
}
Gracias
Gracias. Ahora me gustaría saber cómo devolver la información a mi dominio de aplicación principal. Es decir, devuelve un objeto. ¡Gracias! –
Y otra pregunta. Veo que AppDomainInitializerArguments solo acepta una matriz de cadenas. En este caso, realmente solo quiero cadenas, así que no hay problema, pero ¿y si quisiera otro tipo de datos? ¿Nada que hacer al respecto? –
Los dominios de aplicación no comparten un espacio de memoria de objeto, por lo que pasar objetos alrededor requiere una serialización de algún tipo. Para devolver un objeto, puede DoCallBack en el dominio de aplicación original, si pudiera tenerlo en sus manos (aunque no veo una manera fácil de hacerlo). Alternativamente, puede establecer alguna otra forma de canal entre procesos entre los dominios de aplicaciones, p. un tubo con nombre. –