fork download
  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("prog", "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. }
Success #stdin #stdout 0.38s 39776KB
stdin
Standard input is empty
stdout
Contenido de `listaProgramas`:
	OrtizOL - Fundamentos de Electrónica Digital
	OrtizOL - Easy YouTube Video Downloader
	OrtizOL - El Triángulo
	OrtizOL - Simulador Bancario

Contenido de `nuevoAppDomain.GetData("Programas")`:
	OrtizOL - Fundamentos de Electrónica Digital
	OrtizOL - Easy YouTube Video Downloader
	OrtizOL - El Triángulo
	OrtizOL - Simulador Bancario
	OrtizOL - El Empleado