Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET Framework, Version 2.0, stellt Anwendungen bereit, die die Common Language Runtime hosten und die Steuerung der darin enthaltenen Features ermöglichen. Sie können einige Features (z. B. die Speicherreservierung und das Laden von Assemblys) durch benutzerdefinierte Implementierungen ersetzen. Sie können das Verhalten von anderen Features steuern, Benachrichtigungen von Ereignissen in der Common Language Runtime erhalten und Anwendungsdomänen verwalten.
Initialisieren und Starten einer gehosteten Common Language Runtime
Wie bei früheren Versionen wird die Common Language Runtime von der CorBindToRuntimeEx-Funktion initialisiert. Sie können auswählen, welche Version der Common Language Runtime geladen werden soll, aber ein Prozess kann nur eine Version hosten. Wenn Version 2.0 geladen wird, gibt die Funktion die ICLRRuntimeHost-Schnittstelle zurück, mit der die Common Language Runtime gestartet und verwalteter Code ausgeführt wird.
Hinweis
In früheren Versionen wird die ICorRuntimeHost-Schnittstelle zurückgegeben.
Das Starten der Common Language Runtime wird in Laden der Common Language Runtime in einen Prozess behandelt, das Ausführen von verwaltetem Code in Übergang in verwalteten Hostcode.
Host-Manager
In .NET Framework, Version 2.0, stellt die Common Language Runtime Host-Manager bereit, um viele Features der gehosteten Common Language Runtime zu steuern. Außerdem kann die Hostanwendung andere Manager implementieren. Unter Hostschnittstellen für .NET Framework 2.0 finden Sie Beschreibungen der COM-Schnittstellen, die Sie verwenden können, um mit den von der Common Language Runtime bereitgestellten Managern zu interagieren und Ihre eigenen Host-Manager zu implementieren.
In der folgenden Tabelle werden die Schnittstellen nach der Art der von ihnen bereitgestellten Funktionalität zusammengefasst. Die wichtigste Schnittstelle für jeden Manager wird zuerst aufgelistet.
| Manager | Funktion | Schnittstellen |
|---|---|---|
Manager zum Laden von Assemblys |
Ermöglicht es dem Host, die Speicherorte, von denen Assemblys geladen werden, die Art der Versionsverwaltung und die Formate, von denen Assemblys geladen werden können, anzupassen. Zum Beispiel könnten Assemblys aus einer Datenbank anstatt von Dateien auf der Festplatte geladen werden. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
Richtlinien-Manager |
Ermöglicht es dem Host, die Art anzugeben, wie Programmfehler behandelt werden, um verschiedene Zuverlässigkeitsanforderungen zu unterstützen. Der Host kann mithilfe der ICLRControl-Schnittstelle auf den Laufzeit-Manager zugreifen und implementiert IHostPolicyManager-Rückrufe für Fehlermeldungen von der Common Language Runtime. |
|
Manager für den Hostschutz |
Ermöglicht es dem Host, sein eigenes Programmiermodell zu erzwingen, indem er die Verwendung von angegebenen Typen oder Membern verhindert. Zum Beispiel kann der Host die Verwendung von Threading oder Synchronisierungsprimitiven unterbinden. Der Host greift über die ICLRControl-Schnittstelle auf den Laufzeit-Manager zu. |
|
Arbeitsspeicher-Manager |
Ermöglicht es dem Host, die Speicherreservierung zu steuern, indem er Ersatz für die Betriebssystemfunktionen bereitstellt, mit denen die Common Language Runtime Speicher reserviert. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
Garbage Collection-Manager |
Ermöglicht es dem Host, Methoden zu implementieren, um Meldungen von Anfang und Ende der Garbage Collection zu empfangen. Ermöglicht es dem Host, Auflistungen zu initiieren, Statistiken zu sammeln und einige Eigenschaften der Auflistung anzugeben. Der Host greift über die ICLRControl-Schnittstelle auf den Laufzeit-Manager zu. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
Debug-Manager |
Ermöglicht es dem Host, festzustellen, ob ein Debugger verbunden ist, zusätzliche Debuginformationen bereitzustellen und Debugaufgaben anzupassen. Der Host greift über die ICLRControl-Schnittstelle auf den Laufzeit-Manager zu. |
|
Common Language Runtime-Ereignis-Manager |
Ermöglicht es einem Host, sich für die Benachrichtigung über die Ereignisse zu registrieren, die von EClrEvent aufgelistet werden. Der Host greift über die ICLRControl-Schnittstelle auf diesen Manager zu und implementiert seine Ereignishandler mithilfe von IActionOnCLREvent. |
|
Task-Manager |
Ermöglicht es dem Host, benachrichtigt zu werden, wenn ein Thread einen Übergang zwischen verwaltetem und nicht verwaltetem Code durchführt. Ermöglicht es dem Host, die Threadaffinität zu steuern und zu bestimmen, wann Aufgaben gestartet und beendet und wie sie geplant werden. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
Threadpool-Manager |
Ermöglicht es dem Host, seinen eigenen Threadpool für die zu verwendende Laufzeit zu implementieren. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
Synchronisierungs-Manager |
Ermöglicht es dem Host, seine eigenen Synchronisierungsprimitive für die zu verwendende Laufzeit zu implementieren. Der Host kann Ereignisse, kritische Abschnitte und Semaphore bereitstellen. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
|
E/A-Vervollständigungs-Manager |
Ermöglicht es dem Host, seine eigene Implementierung von asynchroner Eingabe/Ausgabe zu implementieren. Die Common Language Runtime ermittelt über die IHostControl-Schnittstelle, ob ein Host diesen Manager implementiert. |
Hinweis
Die Hostschnittstellen für frühere Versionen der Laufzeit sind in Hostschnittstellen für .NET Framework, Versionen 1.0 und 1.1 dokumentiert.
Zur Unterscheidung werden die Manager in zwei große Kategorien unterteilt:
Manager, die der Host implementiert und die die Common Language Runtime über die IHostControl-Schnittstelle ermittelt.
Manager, die die Common Language Runtime bereitstellt und die der Host über die ICLRControl-Schnittstelle ermittelt.
Anwendungsdomänen-Manager
Für Programme, die die Common Language Runtime hosten, bieten Anwendungsdomänen durch die Isolation der Assemblys voneinander eine größere Zuverlässigkeit. Assemblys können vom Prozess durch das Entladen von Anwendungsdomänen entladen werden.
Um mehrere Anwendungsdomänen zu verwalten, stellt .NET Framework, Version 2.0, die AppDomainManager-Klasse als Basisklasse bereit, von der Sie eigene Anwendungsdomänen-Manager ableiten können. Der Anwendungsdomänen-Manager, den Sie für Ihre Hostanwendung entwerfen, ist im Wesentlichen eine Hosterweiterung in verwaltetem Code. Er wird automatisch in jede im Prozess erstellte Anwendungsdomäne geladen.
Der Anwendungsdomänen-Manager kann die Leistung verbessern, indem er einige Übergänge zwischen verwaltetem und nicht verwaltetem Code beseitigt. Er kann Meldungen von der Erstellung neuer Anwendungsdomänen erhalten, sodass Sie diese konfigurieren können. Außerdem stellt er einen nicht verwalteten Host bereit, mit der Möglichkeit, verwalteten Code aufzurufen.
Siehe auch
Referenz
Konzepte
Laden der Common Language Runtime in einen Prozess
Weitere Ressourcen
Bereitstellen der Common Language Runtime
Anwendungsdomänen
Hostschnittstellen für .NET Framework 2.0