Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Gewusst wie: Laden von Assemblys in eine Anwendungsdomäne

 

Es gibt mehrere Möglichkeiten, eine Assembly in eine Anwendungsdomäne zu laden. Es wird empfohlen, hierzu die static (Shared in Visual Basic) Load-Methode der System.Reflection.Assembly-Klasse zu verwenden. Darüber hinaus können Assemblys u. a. auf folgende Arten geladen werden:

System_CAPS_noteHinweis

Der reflektionsbezogene Kontext ist neu in .NET Framework, Version 2.0.

  • Methoden wie CreateInstance und CreateInstanceAndUnwrap der AppDomain-Klasse können Assemblys in eine Anwendungsdomäne laden.

  • Die GetType-Methode der Type-Klasse kann Assemblys laden.

  • Die Load-Methode der System.AppDomain-Klasse kann Assemblys laden, wird allerdings für die COM-Interoperabilität verwendet. Mit dieser Methode sollten Assemblys nur in die Anwendungsdomäne geladen werden, von der sie aufgerufen wird.

System_CAPS_noteHinweis

Ab .NET Framework, Version 2.0, lädt die Laufzeit keine Assemblys mehr, die mit einer Version von .NET Framework kompiliert wurden, deren Versionsnummer höher ist als die der aktuell geladenen Laufzeit. Dies gilt für die Kombination aus den Haupt- und Nebenkomponenten der Versionsnummer.

Sie können angeben, auf welche Weise der JIT-kompilierte Code (Just-In-Time) aus geladenen Assemblys von Anwendungsdomänen gemeinsam genutzt wird. Weitere Informationen finden Sie unter Application Domains and Assemblies.

Beispiel

Mit dem folgenden Code wird eine Assembly namens "example.exe" oder "example.dll" in die aktuelle Anwendungsdomäne geladen, ein Typ namens Example aus der Assembly abgerufen, eine parameterlose Methode namens MethodA für diesen Typ abgerufen und die Methode ausgeführt. Eine ausführliche Übersicht über das Abrufen von Informationen aus einer geladenen Assembly finden Sie unter Dynamisches Laden und Verwenden von Typen.

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);
    }
}
Anzeigen: