Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created May 29, 2014 20:57
Show Gist options
  • Save Fhernd/82043e67ff4dbcd8f1d9 to your computer and use it in GitHub Desktop.
Save Fhernd/82043e67ff4dbcd8f1d9 to your computer and use it in GitHub Desktop.
Uso recurso de carga de assembly en C#.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: EjecucionRecursivaAssembly.cs
//
// Propósito: Uso recurso de carga de assembly.
//
============================================================*/
using System;
namespace Recetas.Cap03
{
public class EjecucionRecursivaAssembly
{
public static void Main(string[] args)
{
Console.WriteLine();
// Esta condición evita que la aplicación se ejecute
// en un ciclo infinito. La primera vez que se carga
// valida la existencia de del dominio de aplicación
// `Nuevo dominio`, sino existe, entonces lo crea.
// En caso contrario muestra el contenido del arreglo
// del método `Main`:
if (!AppDomain.CurrentDomain.FriendlyName.ToString().Equals("Nuevo dominio"))
{
// Aquí se crea el nuevo dominio:
AppDomain domain = AppDomain.CreateDomain("Nuevo dominio");
// Ejecute este mismo assembly en el nuevo dominio:
domain.ExecuteAssembly(@"C:\shared\EjecucionRecursivaAssembly.exe", args);
}
// Muestra el contenido del arreglo `args`:
foreach (string argumento in args)
{
Console.WriteLine("Nombre AppDomain: `{0}` - Argumento: `{1}`",
AppDomain.CurrentDomain.FriendlyName.ToString(),
argumento);
}
// Finala la aplicación siempre y cuando el
// nombre del dominio no sea igual al nuevo:
if (!AppDomain.CurrentDomain.FriendlyName.ToString().Equals("Nuevo dominio"))
{
Console.WriteLine();
Console.WriteLine("\nPresione `Enter` para finalizar.");
Console.ReadLine();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment