// ===++=== // // OrtizOL // // ===--=== /*============================================================ // // Clase: IntercambioDatosAppDomains.cs // // Propósito: Demostración del intercambio de datos entre // dominios de aplicación. // ============================================================*/ using System; using System.Reflection; using System.Collections; namespace Recetas.Cap03 { internal class ModificadorContenido { public ModificadorContenido() { // Obtiene la lista de las propiedades del dominio: ArrayList lista = (ArrayList) AppDomain.CurrentDomain.GetData("Programas"); // Agrega un nuevo elemento a la lista: lista.Add("OrtizOL - El Empleado"); } } internal class IntercambioDatosAppDomains { public static void Main() { // Creación de un nuevo dominio de aplicación: AppDomain nuevoAppDomain = AppDomain.CreateDomain("NuevoDominio"); // Creación de la lista con nombres de programas: ArrayList listaProgramas = new ArrayList(); listaProgramas.Add("OrtizOL - Fundamentos de Electrónica Digital"); listaProgramas.Add("OrtizOL - Easy YouTube Video Downloader"); listaProgramas.Add("OrtizOL - El Triángulo"); listaProgramas.Add("OrtizOL - Simulador Bancario"); // Agregamos la instancia `ArrayList` en las propiedades // del nuevo dominio `nuevoAppDomain`: nuevoAppDomain.SetData("Programas", listaProgramas); // Creamos instancia desde el dominio nuevo: nuevoAppDomain.CreateInstance("prog", "Recetas.Cap03.ModificadorContenido"); // Visualización del contenido de la lista: Console.WriteLine("\nContenido de `listaProgramas`:"); foreach (string programa in listaProgramas) { Console.WriteLine("\t{0}", programa); } Console.WriteLine("\nContenido de `nuevoAppDomain.GetData(\"Programas\")`:"); foreach (string programa in (ArrayList) nuevoAppDomain.GetData("Programas")) { Console.WriteLine("\t{0}", programa); } Console.WriteLine(); } } }