// ===++===
//
// 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();
}
}
}