fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: UsoMarshalByRefObject.cs
  9. //
  10. // Propósito: Demostrar el uso de la clase abstracta
  11. // MarshalByRefObject.
  12. //
  13. ============================================================*/
  14.  
  15. using System;
  16. using System.Reflection;
  17.  
  18. namespace Receta.Cap03
  19. {
  20. public class Objeto : MarshalByRefObject
  21. {
  22. public void VerDominio()
  23. {
  24. Console.WriteLine("El objeto se está ejecutando en en el AppDomain: `{0}`", AppDomain.CurrentDomain.FriendlyName);
  25. }
  26. }
  27.  
  28. public class UsoMarshalByRefObject
  29. {
  30. public static void Main()
  31. {
  32. // Creación de una instancia de `Objeto`:
  33. Objeto objetoLocal = new Objeto();
  34. objetoLocal.VerDominio();
  35.  
  36. // Creación de un nuevo dominio de applicación:
  37. AppDomain ad = AppDomain.CreateDomain("Nuevo Dominio");
  38.  
  39. // Creación de una nueva instancia en el nuevo dominio:
  40. Objeto objetoRemoto = (Objeto) ad.CreateInstanceAndUnwrap(typeof(Objeto).Assembly.FullName.ToString(), "Receta.Cap03.Objeto");
  41.  
  42. objetoRemoto.VerDominio();
  43. }
  44. }
  45. }
Success #stdin #stdout 0.39s 40872KB
stdin
Standard input is empty
stdout
El objeto se está ejecutando en en el AppDomain: `prog.exe`
El objeto se está ejecutando en en el AppDomain: `Nuevo Dominio`