// ===++=== // // OrtizOL // // ===--=== /*============================================================ // // Clase: UsoMarshalByRefObject.cs // // Propósito: Demostrar el uso de la clase abstracta // MarshalByRefObject. // ============================================================*/ using System; using System.Reflection; namespace Receta.Cap03 { public class Objeto : MarshalByRefObject { public void VerDominio() { Console.WriteLine("El objeto se está ejecutando en en el AppDomain: `{0}`", AppDomain.CurrentDomain.FriendlyName); } } public class UsoMarshalByRefObject { public static void Main() { // Creación de una instancia de `Objeto`: Objeto objetoLocal = new Objeto(); objetoLocal.VerDominio(); // Creación de un nuevo dominio de applicación: AppDomain ad = AppDomain.CreateDomain("Nuevo Dominio"); // Creación de una nueva instancia en el nuevo dominio: Objeto objetoRemoto = (Objeto) ad.CreateInstanceAndUnwrap(typeof(Objeto).Assembly.FullName.ToString(), "Receta.Cap03.Objeto"); objetoRemoto.VerDominio(); } } }