Programmieren mit Anwendungsdomänen

Aktualisiert: November 2007

Anwendungsdomänen werden normalerweise programmgesteuert durch Laufzeithosts erstellt und geändert. In einigen Fällen arbeiten aber auch Anwendungsprogramme mit Anwendungsdomänen. Beispielsweise kann ein Anwendungsprogramm eine Anwendungskomponente in eine Domäne laden, um die Domäne (und die Komponente) entladen zu können, ohne dass die gesamte Anwendung angehalten werden muss.

Die AppDomain-Klasse ist die programmgesteuerte Schnittstelle zu Anwendungsdomänen. Diese Klasse enthält Methoden zum Erstellen und Entladen von Domänen, zum Erstellen von Instanzen von Typen in Domänen und zum Registrieren von verschiedenen Benachrichtigungen wie das Entladen von Domänen. In der folgenden Tabelle werden häufig verwendete AppDomain-Methoden aufgelistet.

AppDomain-Methode

Beschreibung

CreateDomain

Erstellt eine neue Anwendungsdomäne. Es wird empfohlen, dass Sie eine Überladung dieser Methode verwenden, die ein AppDomainSetup-Objekt angibt. Dies ist die bevorzugte Methode zum Festlegen der Eigenschaften einer neuen Domäne, z. B. die Anwendungsbasis oder das Stammverzeichnis für die Anwendung, des Speicherorts der Konfigurationsdatei für die Domäne und des Suchpfads, den die Common Language Runtime verwenden soll, um Assemblys in die Domäne zu laden.

ExecuteAssembly und ExecuteAssemblyByName

Führt eine Assembly in der Anwendungsdomäne aus. Hierbei handelt es sich um eine Instanzmethode, mit der Code in einer anderen Anwendungsdomäne ausgeführt werden kann, für die ein Verweis vorhanden ist.

CreateInstanceAndUnwrap

Erstellt eine Instanz eines angegebenen Typs in der Anwendungsdomäne und gibt einen Proxy zurück. Verwenden Sie diese Methode, um das Laden der Assembly, die den erstellten Typ enthält, in die aufrufende Assembly zu vermeiden.

Unload

Fährt die Domäne ordnungsgemäß herunter. Die Anwendungsdomäne wird erst entladen, wenn alle in der Domäne ausgeführten Threads beendet wurden oder nicht mehr in der Domäne ausgeführt werden.

Hinweis:

Die Common Language Runtime unterstützt keine Serialisierung der globalen Methoden. Daher können Delegaten nicht verwendet werden, um globale Methoden in anderen Anwendungsdomänen auszuführen.

Auch die in der Spezifikation zu den Hostingschnittstellen der Common Language Runtime beschriebenen nicht verwalteten Schnittstellen bieten Zugriff auf Anwendungsdomänen. Mit Schnittstellen von nicht verwaltetem Code können Laufzeithosts Anwendungsdomänen in einem Prozess erstellen und Zugriff auf diese erlangen.

Siehe auch

Referenz

AppDomain

AppDomain-Methoden

Weitere Ressourcen

Anwendungsdomänen