Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // ===++===
  2. //
  3. //    OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: IntercambioDatosAppDomains.cs
  9. //
  10. // Propósito: Demostración del intercambio de datos entre
  11. // dominios de aplicación.
  12. //
  13. ============================================================*/
  14.  
  15. using System;
  16. using System.Reflection;
  17. using System.Collections;
  18.  
  19. namespace Recetas.Cap03
  20. {
  21.     internal class ModificadorContenido
  22.     {
  23.         public ModificadorContenido()
  24.         {
  25.             // Obtiene la lista de las propiedades del dominio:
  26.             ArrayList lista = (ArrayList) AppDomain.CurrentDomain.GetData("Programas");
  27.            
  28.             // Agrega un nuevo elemento a la lista:
  29.             lista.Add("OrtizOL - El Empleado");
  30.         }
  31.     }
  32.    
  33.     internal class IntercambioDatosAppDomains
  34.     {
  35.         public static void Main()
  36.         {
  37.             // Creación de un nuevo dominio de aplicación:
  38.             AppDomain nuevoAppDomain = AppDomain.CreateDomain("NuevoDominio");
  39.            
  40.             // Creación de la lista con nombres de programas:
  41.             ArrayList listaProgramas = new ArrayList();
  42.            
  43.             listaProgramas.Add("OrtizOL - Fundamentos de Electrónica Digital");
  44.             listaProgramas.Add("OrtizOL - Easy YouTube Video Downloader");
  45.             listaProgramas.Add("OrtizOL - El Triángulo");
  46.             listaProgramas.Add("OrtizOL - Simulador Bancario");
  47.            
  48.             // Agregamos la instancia `ArrayList` en las propiedades
  49.             // del nuevo dominio `nuevoAppDomain`:
  50.             nuevoAppDomain.SetData("Programas", listaProgramas);
  51.            
  52.             // Creamos instancia desde el dominio nuevo:
  53.             nuevoAppDomain.CreateInstance("IntercambioDatosAppDomains", "Recetas.Cap03.ModificadorContenido");
  54.            
  55.             // Visualización del contenido de la lista:
  56.             Console.WriteLine("\nContenido de `listaProgramas`:");
  57.             foreach (string programa in listaProgramas)
  58.             {
  59.                 Console.WriteLine("\t{0}", programa);
  60.             }
  61.            
  62.             Console.WriteLine("\nContenido de `nuevoAppDomain.GetData(\"Programas\")`:");
  63.             foreach (string programa in (ArrayList) nuevoAppDomain.GetData("Programas"))
  64.             {
  65.                 Console.WriteLine("\t{0}", programa);
  66.             }
  67.            
  68.             Console.WriteLine();
  69.         }
  70.     }
  71. }