Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
AppDomain-Klasse
Stellt eine Anwendungsdomäne dar. Dies ist eine isolierte Umgebung, in der Programme ausgeführt werden. Diese Klasse kann nicht vererbt werden.
Assembly: mscorlib (in mscorlib.dll)
Der AppDomain-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
ActivationContext | Ruft den Aktivierungskontext für die aktuelle Anwendungsdomäne ab. |
|
ApplicationIdentity | Ruft die Identität der Anwendung in der Anwendungsdomäne ab. |
|
ApplicationTrust | Ruft Informationen ab, die die einer Anwendung gewährten Berechtigungen beschreiben und ob die Anwendung eine Vertrauensebene besitzt, die eine Ausführung zulässt. |
|
BaseDirectory | Ruft das Basisverzeichnis ab, das der Assemblyresolver für die Suche nach Assemblys verwendet. |
|
CurrentDomain | Ruft die aktuelle Anwendungsdomäne für den aktuellen Thread ab. |
|
DomainManager | Ruft den Domänen-Manager ab, der beim Initialisieren der Anwendungsdomäne vom Host bereitgestellt wurde. |
|
DynamicDirectory | Ruft das Verzeichnis ab, das der Assemblyresolver für die Suche nach dynamisch erstellten Assemblys verwendet. |
|
Evidence | Ruft den Evidence ab, der dieser Anwendungsdomäne zugeordnet ist. |
|
FriendlyName | Ruft den angezeigten Namen dieser Anwendungsdomäne ab. |
|
Id | Ruft eine ganze Zahl ab, die die Anwendungsdomäne innerhalb des Prozesses eindeutig identifiziert. |
|
IsFullyTrusted | Ruft einen Wert ab, der angibt, ob in die aktuelle Anwendungsdomäne geladene Assemblys mit voller Vertrauenswürdigkeit ausgeführt werden. |
|
IsHomogenous | Ruft einen Wert ab, der angibt, ob die aktuelle Anwendungsdomäne einen Satz von Berechtigungen aufweist, der allen in die Anwendungsdomäne geladenen Assemblys gewährt wird. |
|
MonitoringIsEnabled | Ruft einen Wert ab, der angibt, ob CPU- und Speicherüberwachung von Anwendungsdomänen für den aktuellen Prozess aktiviert ist, oder legt ihn fest. Wenn die Überwachung für einen Prozess aktiviert wurde, kann sie nicht deaktiviert werden. |
|
MonitoringSurvivedMemorySize | Ruft die Anzahl von Bytes ab, die nach der letzten vollständigen Blockierungsauflistung noch vorhanden sind und auf die bekanntermaßen von der aktuellen Anwendungsdomäne verwiesen wird. |
|
MonitoringSurvivedProcessMemorySize | Ruft die gesamten Bytes ab, die nach der letzten vollständigen Blockierungsauflistung für alle Anwendungsdomänen im Prozess noch vorhanden sind. |
|
MonitoringTotalAllocatedMemorySize | Ruft die Gesamtgröße in Bytes aller Speicherbelegungen ab, die von der Anwendungsdomäne seit der Erstellung vorgenommen wurden, ohne Subtraktion des freigegebenen Speichers. |
|
MonitoringTotalProcessorTime | Ruft die gesamte Prozessorzeit ab, die von allen Threads bei der Ausführung in der aktuellen Anwendungsdomäne seit Prozessstart genutzt wurde. |
|
PermissionSet | Ruft den Berechtigungssatz einer Sandbox-Anwendungsdomäne ab. |
|
RelativeSearchPath | Ruft den Pfad unterhalb des Basisverzeichnisses ab, in dem der Assemblyresolver nach privaten Assemblys suchen soll. |
|
SetupInformation | Ruft die Konfigurationsinformationen der Anwendungsdomäne für diese Instanz ab. |
|
ShadowCopyFiles | Gibt an, ob die Anwendungsdomäne für das Erstellen von Dateischattenkopien konfiguriert ist. |
| Name | Beschreibung | |
|---|---|---|
|
AppendPrivatePath | Veraltet. Fügt den angegebenen Verzeichnisnamen der Liste der privaten Pfade hinzu. |
|
ApplyPolicy | Gibt den Assemblyanzeigenamen nach dem Anwenden der Richtlinien zurück. |
|
ClearPrivatePath | Veraltet. Setzt den Pfad, der den Speicherort von privaten Assemblys angibt, auf die leere Zeichenfolge ("") zurück. |
|
ClearShadowCopyPath | Veraltet. Setzt die Liste der Verzeichnisse mit gespiegelten Assemblys auf die leere Zeichenfolge ("") zurück. |
|
CreateComInstanceFrom(String, String) | Erstellt eine neue Instanz eines angegebenen COM-Typs. Die Parameter geben den Namen einer Datei mit einer Assembly an, die den Typ und seinen Namen enthält. |
|
CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) | Erstellt eine neue Instanz eines angegebenen COM-Typs. Die Parameter geben den Namen einer Datei mit einer Assembly an, die den Typ und seinen Namen enthält. |
|
CreateDomain(String) | Erstellt eine neue Anwendungsdomäne mit dem angegebenen Namen. |
|
CreateDomain(String, Evidence) | Erstellt eine neue Anwendungsdomäne mit dem angegebenen Namen und den bereitgestellten Beweisen. |
|
CreateDomain(String, Evidence, AppDomainSetup) | Erstellt eine neue Anwendungsdomäne mit dem angegebenen Namen, den angegebenen Beweisen und Anwendungsdomänen-Setupinformationen. |
|
CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) | Erstellt eine neue Anwendungsdomäne mit angegebenem Namen, Beweis, Anwendungsdomänen-Setupinformationen, Standardberechtigungssatz und Array vollständig vertrauenswürdiger Assemblys. |
|
CreateDomain(String, Evidence, String, String, Boolean) | Erstellt eine neue Anwendungsdomäne mit dem angegebenen Namen unter Verwendung der Beweise, des Anwendungsbasispfades, des relativen Suchpfades und eines Parameters, der angibt, ob eine Schattenkopie einer Assembly in die Anwendungsdomäne geladen werden soll. |
|
CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) | Erstellt eine neue Anwendungsdomäne mit dem angegebenen Namen unter Verwendung der Beweise, des Anwendungsbasispfades, des relativen Suchpfades und eines Parameters, der angibt, ob eine Schattenkopie einer Assembly in die Anwendungsdomäne geladen werden soll. Gibt eine Rückrufmethode an, die beim Initialisieren der Anwendungsdomäne aufgerufen wird, und ein Array von Zeichenfolgenargumenten, die an die Rückrufmethode übergeben werden sollen. |
|
CreateInstance(String, String) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assembly definiert ist. |
|
CreateInstance(String, String, Object[]) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assembly definiert ist. Ein Parameter gibt ein Array von Aktivierungsattributen an. |
|
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assembly definiert ist. Parameter geben einen Binder, Bindungsflags, Konstruktorargumente, kulturspezifische Informationen zum Interpretieren von Argumenten und optionale Aktivierungsattribute an. |
|
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) | Veraltet. Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assembly definiert ist. Parameter geben einen Binder, Bindungsflags, Konstruktorargumente, kulturabhängige Informationen zum Interpretieren von Argumenten, Aktivierungsattribute und die Autorisierung zum Erstellen des Typs an. |
|
CreateInstanceAndUnwrap(String, String) | Erstellt eine neue Instanz des angegebenen Typs. Die Parameter geben die Assembly, in der der Typ definiert ist, und den Namen des Typs an. |
|
CreateInstanceAndUnwrap(String, String, Object[]) | Erstellt eine neue Instanz des angegebenen Typs. Die Parameter geben die Assembly an, in der der Typ definiert ist, und den Namen des Typs und ein Array von Aktivierungsattributen. |
|
CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) | Erstellt eine neue Instanz des angegebenen, in der angegebenen Assembly definierten Typs, die angibt, ob der Fall des Typnamens ignoriert wird, außerdem die Bindungsattribute und den Binder, mit denen der zu erstellende Typ ausgewählt wird, die Argumente des Konstruktors, die Kultur und die Aktivierungsattribute. |
|
CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) | Veraltet. Erstellt eine neue Instanz des angegebenen Typs. Die Parameter geben den Namen des Typs an und wie er gesucht und erstellt werden kann. |
|
CreateInstanceFrom(String, String) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFrom(String, String, Object[]) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) | Veraltet. Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFromAndUnwrap(String, String) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFromAndUnwrap(String, String, Object[]) | Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) | Erstellt eine neue Instanz des angegebenen, in der angegebenen Assemblydatei definierten Typs, die angibt, ob der Fall des Typnamens ignoriert wird, außerdem die Bindungsattribute und den Binder, mit denen der zu erstellende Typ ausgewählt wird, die Argumente des Konstruktors, die Kultur und die Aktivierungsattribute. |
|
CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) | Veraltet. Erstellt eine neue Instanz des angegebenen Typs, der in der angegebenen Assemblydatei definiert ist. |
|
CreateObjRef | Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.) |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) | Definiert eine dynamische Assembly mit dem angegebenen Namen und Zugriffsmodus. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) | Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und benutzerdefinierten Attributen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und Beweis. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) | Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und Speicherverzeichnis. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) | Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und benutzerdefinierten Attributen und verwendet die angegebene Quelle für den Sicherheitskontext. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und Beweis. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenem Namen, Zugriffsmodus und den angegebenen Berechtigungsanforderungen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) | Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und der Synchronisierungsoption. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Beweis und den angegebenen Berechtigungsanforderungen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und den angegebenen Berechtigungsanforderungen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis, Beweis und den angegebenen Berechtigungsanforderungen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis, Beweis sowie der angegebenen Synchronisierungsoption und den angegebenen Berechtigungsanforderungen. |
|
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) | Veraltet. Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis, Beweis sowie der angegebenen Synchronisierungsoption und den angegebenen Berechtigungsanforderungen und benutzerdefinierten Attributen. |
|
DoCallBack | Führt den Code in einer anderen Anwendungsdomäne aus, die durch den angegebenen Delegaten bezeichnet wird. |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
ExecuteAssembly(String) | Führt die Assembly in der angegebenen Datei aus. |
|
ExecuteAssembly(String, Evidence) | Veraltet. Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise aus. |
|
ExecuteAssembly(String, String[]) | Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente aus. |
|
ExecuteAssembly(String, Evidence, String[]) | Veraltet. Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise und Argumente aus. |
|
ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) | Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente, des Hashwerts und Hashalgorithmus aus. |
|
ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) | Veraltet. Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise, Argumente, des Hashwerts und Hashalgorithmus aus. |
|
ExecuteAssemblyByName(String) | Führt eine Assembly unter Angabe ihres Anzeigenamens aus. |
|
ExecuteAssemblyByName(AssemblyName, String[]) | Führt bei Angabe eines AssemblyName die Assembly mit den angegebenen Argumenten aus. |
|
ExecuteAssemblyByName(String, Evidence) | Veraltet. Führt eine Assembly unter Angabe ihres Anzeigenamens mit dem angegebenen Beweis aus. |
|
ExecuteAssemblyByName(String, String[]) | Führt die Assembly unter Angabe ihres Anzeigenamens mit den angegebenen Argumenten aus. |
|
ExecuteAssemblyByName(AssemblyName, Evidence, String[]) | Veraltet. Führt bei Angabe eines AssemblyName die Assembly mit dem angegebenen Beweis und den angegebenen Argumenten aus. |
|
ExecuteAssemblyByName(String, Evidence, String[]) | Veraltet. Führt die Assembly unter Angabe ihres Anzeigenamens mit dem angegebenen Beweis und den angegebenen Argumenten aus. |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetAssemblies | Ruft die Assemblys ab, die in den Ausführungskontext dieser Anwendungsdomäne geladen wurden. |
|
GetCurrentThreadId | Veraltet. Ruft den aktuellen Threadbezeichner ab. |
|
GetData | Ruft den in der aktuellen Anwendungsdomäne gespeicherten Wert für den angegebenen Namen ab. |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetLifetimeService | Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.) |
|
GetType |
Ruft den Typ der aktuellen Instanz ab.
In XNA Framework 3.0 wird dieser Member von Object.GetType(). |
|
InitializeLifetimeService | Führt zu einer unendlichen Lebensdauer der AppDomain, indem das Erstellen eines Lease verhindert wird. (Überschreibt MarshalByRefObject.InitializeLifetimeService().) |
|
IsCompatibilitySwitchSet | Ruft einen booleschen Wert, der NULL-Werte zulässt, ab, der angibt, ob alle Kompatibilitätsschalter festgelegt werden und ob in diesem Fall der angegebene Kompatibilitätsschalter festgelegt wird. |
|
IsDefaultAppDomain | Gibt einen Wert zurück, der angibt, ob die Anwendungsdomäne die Standardanwendungsdomäne für den Prozess ist. |
|
IsFinalizingForUnload | Gibt an, ob diese Anwendungsdomäne entladen wird und ob die darin enthaltenen Objekte durch die Common Language Runtime finalisiert werden. |
|
Load(AssemblyName) | Lädt eine Assembly bei Angabe ihres AssemblyName. |
|
Load(Byte[]) | Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine angegebene Assembly enthält. |
|
Load(String) | Lädt eine Assembly bei Angabe ihres Anzeigenamens. |
|
Load(AssemblyName, Evidence) | Veraltet. Lädt eine Assembly bei Angabe ihres AssemblyName. |
|
Load(Byte[], Byte[]) | Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine angegebene Assembly enthält. Die Rohdatenbytes, die die Symbole für die Assembly darstellen, werden ebenfalls geladen. |
|
Load(String, Evidence) | Veraltet. Lädt eine Assembly bei Angabe ihres Anzeigenamens. |
|
Load(Byte[], Byte[], Evidence) | Veraltet. Lädt die Assembly mit einem COFF-Image (Common Object File Format), das eine angegebene Assembly enthält. Die Rohdatenbytes, die die Symbole für die Assembly darstellen, werden ebenfalls geladen. |
|
MemberwiseClone() | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
MemberwiseClone(Boolean) | Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.) |
|
ReflectionOnlyGetAssemblies | Gibt die Assemblys zurück, die in den Reflektionskontext der Anwendungsdomäne geladen wurden. |
|
SetAppDomainPolicy | Veraltet. Legt die Sicherheitsrichtlinienebene für diese Anwendungsdomäne fest. |
|
SetCachePath | Veraltet. Legt den angegebenen Verzeichnispfad als Speicherort für gespiegelte Assemblys fest. |
|
SetData(String, Object) | Weist der angegebenen Anwendungsdomäneneigenschaft den angegebenen Wert zu. |
|
SetData(String, Object, IPermission) | Weist der angegebenen Anwendungsdomäneneigenschaft den angegebenen Wert mit einer angegebenen Berechtigung zu, die der Aufrufer beim Abrufen der Eigenschaft besitzen muss. |
|
SetDynamicBase | Veraltet. Legt den angegebenen Verzeichnispfad als das Basisverzeichnis fest, in dem Unterverzeichnisse für die Speicherung und den Zugriff auf dynamisch generierte Dateien erstellt werden. |
|
SetPrincipalPolicy | Gibt an, wie Haupt- und Identitätsobjekte an einen Thread angefügt werden sollen, wenn während der Ausführung in dieser Anwendungsdomäne versucht wird, den Thread an einen Principal zu binden. |
|
SetShadowCopyFiles | Veraltet. Aktiviert die Schattenkopiefunktion. |
|
SetShadowCopyPath | Veraltet. Legt den angegebenen Verzeichnispfad als Speicherort für zu spiegelnde Assemblys fest. |
|
SetThreadPrincipal | Legt das Standardprincipalobjekt fest, das an Threads angefügt wird, wenn bei der Ausführung in dieser Anwendungsdomäne versucht wird, diese an ein Principal zu binden. |
|
ToString | Ruft eine Zeichenfolgenentsprechung ab, die den angezeigten Namen der Anwendungsdomäne und aller Kontextrichtlinien einschließt. (Überschreibt Object.ToString().) |
|
Unload | Entlädt die angegebene Anwendungsdomäne. |
| Name | Beschreibung | |
|---|---|---|
|
AssemblyLoad | Tritt beim Laden einer Assembly ein. |
|
AssemblyResolve | Tritt ein, wenn die Auflösung einer Assembly fehlschlägt. |
|
DomainUnload | Tritt ein, wenn eine AppDomain gerade entladen werden soll. |
|
FirstChanceException | Tritt auf, wenn eine Ausnahme in verwaltetem Code ausgelöst wird, bevor die Laufzeit in der Aufrufliste nach einem Ausnahmehandler in der Anwendungsdomäne sucht. |
|
ProcessExit | Tritt ein, wenn der übergeordnete Prozess der Standardanwendungsdomäne beendet wird. |
|
ReflectionOnlyAssemblyResolve | Tritt ein, wenn die Auflösung einer Assembly im Reflektionskontext fehlschlägt. |
|
ResourceResolve | Tritt ein, wenn die Auflösung einer Ressource fehlschlägt, weil die Ressource keine gültige verknüpfte oder eingebettete Ressource in der Assembly ist. |
|
TypeResolve | Tritt ein, wenn die Auflösung eines Typs fehlschlägt. |
|
UnhandledException | Tritt auf, wenn eine Ausnahme nicht abgefangen wird. |
| Name | Beschreibung | |
|---|---|---|
|
_AppDomain.GetIDsOfNames | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. |
|
_AppDomain.GetTypeInfo | Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. |
|
_AppDomain.GetTypeInfoCount | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). |
|
_AppDomain.Invoke | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. |
Anwendungsdomänen werden durch AppDomain-Objekte dargestellt und unterstützen die Bereitstellung von Begrenzungen der Isolation, Entladung und Sicherheit für die Ausführung von verwaltetem Code.
-
Verwenden Sie Anwendungsdomänen, um Aufgaben zu isolieren, die einen Prozess zum Absturz bringen könnten. Wenn der Zustand der AppDomain, in der eine Aufgabe ausgeführt wird, instabil wird, kann die AppDomain ohne Auswirkungen auf den Prozess entladen werden. Dies ist wichtig, wenn ein Prozess über einen längeren Zeitraum ohne Neustart ausgeführt werden muss. Sie können auch Anwendungsdomänen verwenden, um Aufgaben zu isolieren, die keine Daten gemeinsam verwenden sollten.
-
Wenn eine Assembly in die Standardanwendungsdomäne geladen wird, kann sie während der Ausführung des Prozesses nicht aus dem Speicher entladen werden. Wenn Sie hingegen eine zweite Anwendungsdomäne zum Laden und Ausführen der Assembly öffnen, wird die Assembly beim Entladen dieser Anwendungsdomäne entladen. Verwenden Sie dieses Verfahren, um das Workingset von Prozessen mit langer Laufzeit zu minimieren, die gelegentlich große DLLs verwenden.
In einem Prozess können mehrere Anwendungsdomänen ausgeführt werden. Allerdings besteht keine Eins-zu-Eins-Entsprechung zwischen Anwendungsdomänen und Threads. Zu einer Anwendungsdomäne können mehrere Threads gehören. Obwohl ein Thread nicht auf eine einzige Anwendungsdomäne beschränkt ist, wird ein Thread immer nur in einer einzigen Anwendungsdomäne ausgeführt.
Anwendungsdomänen werden mit der CreateDomain-Methode erstellt. AppDomain-Instanzen werden verwendet, um Assemblys (Assembly) zu laden und auszuführen. Wenn eine AppDomain nicht mehr verwendet wird, kann sie entladen werden.
Die AppDomain-Klasse implementiert eine Gruppe von Ereignissen, die es Anwendungen ermöglichen zu antworten, wenn eine Assembly geladen, eine Anwendungsdomäne entladen oder eine nicht behandelte Ausnahme ausgelöst wird.
Weitere Informationen über die Verwendung von Anwendungsdomänen finden Sie unter Anwendungsdomänen.
Diese Klasse implementiert die MarshalByRefObject-Schnittstelle, die _AppDomain-Schnittstelle und die IEvidenceFactory-Schnittstelle.
Erstellen Sie unter keinen Umständen einen remotefähigen Wrapper für ein AppDomain-Objekt. Dadurch wird möglicherweise ein Remoteverweis auf diese AppDomain veröffentlich, und Methoden wie CreateInstance werden für einen Remotezugriff offen gelegt, sodass die Codezugriffssicherheit für diese AppDomain zunichte gemacht wird. Böswillige Clients, die eine Verbindung mit der Remote-AppDomain herstellen, können sich Zugriff auf eine beliebige Ressource verschaffen, auf die die AppDomain selbst Zugriff hat. Erstellen Sie keine remotefähigen Wrapper für von MarshalByRefObject abgeleitete Typen und für Typen, die Methoden implementieren, mit denen böswillige Clients das Sicherheitssystem umgehen können.
Vorsicht
|
|---|
|
Der Standardwert für die AppDomainSetup.DisallowCodeDownload-Eigenschaft ist false. Diese Einstellung ist für Dienste nicht sicher. Legen Sie die diese Eigenschaft auf true fest, um zu verhindern, dass Dienste teilweise vertrauenswürdigen Code herunterladen. |
In diesem Beispiel wird veranschaulicht, wie eine neue AppDomain erstellt, in dieser neuen AppDomain ein Typ instanziiert und mit dem Objekt dieses Typs kommuniziert werden kann. Außerdem veranschaulicht dieses Beispiel das Entladen der AppDomain, sodass das Objekt von der Garbage Collection freigegeben wird.
using System; using System.Reflection; using System.Threading; class Module1 { public static void Main() { // Get and display the friendly name of the default AppDomain. string callingDomainName = Thread.GetDomain().FriendlyName; Console.WriteLine(callingDomainName); // Get and display the full name of the EXE assembly. string exeAssembly = Assembly.GetEntryAssembly().FullName; Console.WriteLine(exeAssembly); // Construct and initialize settings for a second AppDomain. AppDomainSetup ads = new AppDomainSetup(); ads.ApplicationBase = System.Environment.CurrentDirectory; ads.DisallowBindingRedirects = false; ads.DisallowCodeDownload = true; ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; // Create the second AppDomain. AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads); // Create an instance of MarshalbyRefType in the second AppDomain. // A proxy to the object is returned. MarshalByRefType mbrt = (MarshalByRefType) ad2.CreateInstanceAndUnwrap( exeAssembly, typeof(MarshalByRefType).FullName ); // Call a method on the object via the proxy, passing the // default AppDomain's friendly name in as a parameter. mbrt.SomeMethod(callingDomainName); // Unload the second AppDomain. This deletes its object and // invalidates the proxy object. AppDomain.Unload(ad2); try { // Call the method again. Note that this time it fails // because the second AppDomain was unloaded. mbrt.SomeMethod(callingDomainName); Console.WriteLine("Sucessful call."); } catch(AppDomainUnloadedException) { Console.WriteLine("Failed call; this is expected."); } } } // Because this class is derived from MarshalByRefObject, a proxy // to a MarshalByRefType object can be returned across an AppDomain // boundary. public class MarshalByRefType : MarshalByRefObject { // Call this method via a proxy. public void SomeMethod(string callingDomainName) { // Get this AppDomain's settings and display some of them. AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation; Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", ads.ApplicationName, ads.ApplicationBase, ads.ConfigurationFile ); // Display the name of the calling AppDomain and the name // of the second domain. // NOTE: The application's thread has transitioned between // AppDomains. Console.WriteLine("Calling from '{0}' to '{1}'.", callingDomainName, Thread.GetDomain().FriendlyName ); } } /* This code produces output similar to the following: AppDomainX.exe AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config Calling from 'AppDomainX.exe' to 'AD #2'. Failed call; this is expected. */
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Vorsicht