Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Cómo: Cargar ensamblados en un dominio de aplicación

 

Existen varias formas de cargar un ensamblado en un dominio de aplicación. La forma recomendada es utilizar el método static (Shared en Visual Basic) Load de la clase System.Reflection.Assembly. Otras formas de cargar ensamblados son las que se indican a continuación:

System_CAPS_noteNota

El contexto de sólo reflexión es nuevo en la versión 2.0 de .NET Framework.

  • Los métodos como CreateInstance y CreateInstanceAndUnwrap de la clase AppDomain permiten cargar ensamblados en un dominio de aplicación.

  • El método GetType de la clase Type puede cargar ensamblados.

  • El método Load de la clase System.AppDomain permite cargar ensamblados, pero se utiliza principalmente para la interoperabilidad COM. No debe utilizarse para cargar ensamblados en un dominio de aplicación distinto del dominio de aplicación desde el que se llama al método.

System_CAPS_noteNota

Si se inicia con la versión 2.0 de .NET Framework, el tiempo de ejecución no cargará un ensamblado compilado con una versión de .NET Framework posterior a la actualmente cargada en el tiempo de ejecución. Esto se aplica a la combinación de componentes principales y secundarios del número de versión.

Puede especificar la forma en que el código compilado Just-In-Time (JIT) de los ensamblados cargados se comparte entre los dominios de aplicación. Para obtener más información, vea Application Domains and Assemblies.

Ejemplo

En el siguiente código, se carga un ensamblado denominado "example.exe" o "example.dll" en el dominio de aplicación actual, se obtiene un tipo denominado Example del ensamblado, se obtiene un método sin parámetros denominado MethodA para ese tipo y se ejecuta el método. Si desea una descripción completa de cómo obtener información de un ensamblado cargado, vea Cargar y utilizar tipos dinámicamente.

using System;
using System.Reflection;

public class Asmload0
{
    public static void Main()
    {
        // Use the file name to load the assembly into the current
        // application domain.
        Assembly a = Assembly.Load("example");
        // Get the type to use.
        Type myType = a.GetType("Example");
        // Get the method to call.
        MethodInfo myMethod = myType.GetMethod("MethodA");
        // Create an instance.
        object obj = Activator.CreateInstance(myType);
        // Execute the method.
        myMethod.Invoke(obj, null);
    }
}
Mostrar: