AppDomain Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Anwendungsdomäne dar. Dies ist eine isolierte Umgebung, in der Programme ausgeführt werden. Diese Klasse kann nicht vererbt werden.
public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject
type AppDomain = class
inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
inherit MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
- Vererbung
- Attribute
- Implementiert
Beispiele
In diesem Beispiel wird gezeigt, wie Sie einen neuen , Instanziierungstyp in diesem neuen AppDomainAppDomainTyp erstellen und mit dem Objekt dieses Typs kommunizieren. Darüber hinaus zeigt dieses Beispiel, wie sie das Zuladen des AppDomain Objekts aufheben, das zum Sammeln von Müll gesammelt werden soll.
using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
// Call this method via a proxy.
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
);
};
};
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 = gcnew AppDomainSetup();
ads->ApplicationBase = AppDomain::CurrentDomain->BaseDirectory;
ads->DisallowBindingRedirects = false;
ads->DisallowCodeDownload = true;
ads->ConfigurationFile =
AppDomain::CurrentDomain->SetupInformation->ConfigurationFile;
// Create the second AppDomain.
AppDomain^ ad2 = AppDomain::CreateDomain("AD #2",
AppDomain::CurrentDomain->Evidence, ads);
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
MarshalByRefType^ mbrt =
(MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
exeAssembly,
MarshalByRefType::typeid->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.");
}
}
/* 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.
*/
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 = AppDomain.CurrentDomain.BaseDirectory;
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.
*/
open System
open System.Reflection
open System.Threading
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
type MarshalByRefType() =
inherit MarshalByRefObject()
// Call this method via a proxy.
member _.SomeMethod(callingDomainName) =
// Get this AppDomain's settings and display some of them.
let ads = AppDomain.CurrentDomain.SetupInformation
printfn $"AppName={ads.ApplicationName}, AppBase={ads.ApplicationBase}, ConfigFile={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.
printfn $"Calling from '{callingDomainName}' to '{Thread.GetDomain().FriendlyName}'."
// Get and display the friendly name of the default AppDomain.
let callingDomainName = Thread.GetDomain().FriendlyName
printfn $"{callingDomainName}"
// Get and display the full name of the EXE assembly.
let exeAssembly = Assembly.GetEntryAssembly().FullName
printfn $"{exeAssembly}"
// Construct and initialize settings for a second AppDomain.
let ads = AppDomainSetup()
ads.ApplicationBase <- AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects <- false
ads.DisallowCodeDownload <- true
ads.ConfigurationFile <-
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
// Create the second AppDomain.
let ad2 = AppDomain.CreateDomain("AD #2", null, ads)
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
let mbrt =
ad2.CreateInstanceAndUnwrap(
exeAssembly,
typeof<MarshalByRefType>.FullName) :?> MarshalByRefType
// 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
printfn "Sucessful call."
with :? AppDomainUnloadedException ->
printfn "Failed call this is expected."
(* 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.
*)
Imports System.Reflection
Imports System.Threading
Module Module1
Sub Main()
' Get and display the friendly name of the default AppDomain.
Dim callingDomainName As String = Thread.GetDomain().FriendlyName
Console.WriteLine(callingDomainName)
' Get and display the full name of the EXE assembly.
Dim exeAssembly As String = [Assembly].GetEntryAssembly().FullName
Console.WriteLine(exeAssembly)
' Construct and initialize settings for a second AppDomain.
Dim ads As New AppDomainSetup()
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects = False
ads.DisallowCodeDownload = True
ads.ConfigurationFile = _
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
' Create the second AppDomain.
Dim ad2 As AppDomain = AppDomain.CreateDomain("AD #2", Nothing, ads)
' Create an instance of MarshalbyRefType in the second AppDomain.
' A proxy to the object is returned.
Dim mbrt As MarshalByRefType = CType( _
ad2.CreateInstanceAndUnwrap(exeAssembly, _
GetType(MarshalByRefType).FullName), MarshalByRefType)
' 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 e As AppDomainUnloadedException
Console.WriteLine("Failed call; this is expected.")
End Try
End Sub
End Module
' Because this class is derived from MarshalByRefObject, a proxy
' to a MarshalByRefType object can be returned across an AppDomain
' boundary.
Public Class MarshalByRefType
Inherits MarshalByRefObject
' Call this method via a proxy.
Public Sub SomeMethod(ByVal callingDomainName As String)
' Get this AppDomain's settings and display some of them.
Dim ads As AppDomainSetup = 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)
End Sub
End Class
'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.
Hinweise
Anwendungsdomänen, die durch AppDomain Objekte dargestellt werden, helfen bei der Bereitstellung von Isolation, Entladung und Sicherheitsgrenzen für die Ausführung verwalteten Codes.
Verwenden Sie Anwendungsdomänen, um Aufgaben zu isolieren, die möglicherweise einen Prozess herunterbringen. Wenn der Zustand der AppDomain Ausführung einer Aufgabe instabil wird, kann der AppDomain Vorgang ohne Auswirkungen auf den Prozess ungeladen werden. Dies ist wichtig, wenn ein Prozess für lange Zeiträume ohne Neustart ausgeführt werden muss. Sie können auch Anwendungsdomänen verwenden, um Aufgaben zu isolieren, die keine Daten freigeben sollten.
Wenn eine Assembly in die Standardanwendungsdomäne geladen wird, kann es während der Ausführung des Prozesses nicht aus dem Arbeitsspeicher entfernt werden. Wenn Sie jedoch eine zweite Anwendungsdomäne öffnen, um die Assembly zu laden und auszuführen, wird die Assembly nicht geladen, wenn diese Anwendungsdomäne geladen wird. Verwenden Sie diese Technik, um die Arbeitsmenge von lang ausgeführten Prozessen zu minimieren, die gelegentlich große DLLs verwenden.
Hinweis
Bei .NET Core ist die AppDomain Implementierung von Design begrenzt und stellt keine Isolation, Entladung oder Sicherheitsgrenzen bereit. Für .NET Core gibt es genau eine AppDomain. Isolation und Entladung werden durch AssemblyLoadContextbereitgestellt. Sicherheitsgrenzen sollten durch Prozessgrenzen und geeignete Remotingtechniken bereitgestellt werden.
Mehrere Anwendungsdomänen können in einem einzigen Prozess ausgeführt werden; Es gibt jedoch keine 1-1-Korrelation zwischen Anwendungsdomänen und Threads. Mehrere Threads können zu einer einzelnen Anwendungsdomäne gehören, und während ein bestimmtes Thread nicht auf eine einzelne Anwendungsdomäne beschränkt ist, wird ein Thread jederzeit in einer einzigen Anwendungsdomäne ausgeführt.
Anwendungsdomänen werden mithilfe der CreateDomain Methode erstellt. AppDomain Instanzen werden zum Laden und Ausführen von Assemblys (Assembly) verwendet. Wenn ein AppDomain Benutzer nicht mehr verwendet wird, kann er nicht mehr geladen werden.
Die AppDomain Klasse implementiert eine Reihe von Ereignissen, die es Anwendungen ermöglichen, zu reagieren, wenn eine Assembly geladen wird, wenn eine Anwendungsdomäne geladen wird oder wenn eine nicht behandelte Ausnahme ausgelöst wird.
Weitere Informationen zur Verwendung von Anwendungsdomänen finden Sie unter Anwendungsdomänen.
Diese Klasse implementiert die MarshalByRefObject, _AppDomainund IEvidenceFactory Schnittstellen.
Sie sollten niemals einen Remotable-Wrapper für ein AppDomain Objekt erstellen. Dies könnte einen Remoteverweis dazu AppDomainveröffentlichen, indem Methoden wie CreateInstance Remotezugriff und effektive Zerstörung der Codezugriffssicherheit für dies AppDomainangezeigt werden. Böswillige AppDomain Clients, die mit der Remoteverbindung verbunden sind, können Zugriff auf jede Ressource AppDomain erhalten, auf die sich selbst Zugriff hat. Erstellen Sie keine Remotable-Wrapper für jeden Typ, der erweitert MarshalByRefObject wird und Methoden implementiert, die von böswilligen Clients verwendet werden können, um das Sicherheitssystem zu umgehen.
Achtung
Der Standardwert für die AppDomainSetup.DisallowCodeDownload Eigenschaft ist false
. Diese Einstellung ist für Dienste nicht sicher. Um zu verhindern, dass Dienste teilweise vertrauenswürdigen Code herunterladen, legen Sie diese Eigenschaft auf true
.
Eigenschaften
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 Ganzzahl 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 vollständiger 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 Auflistung 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 Auflistung 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 |
Veraltet.
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. |
Methoden
AppendPrivatePath(String) |
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Fügt den angegebenen Verzeichnisnamen an die Liste der privaten Pfade an. |
ApplyPolicy(String) |
Gibt den Assemblyanzeigenamen nach dem Anwenden der Richtlinien zurück. |
ClearPrivatePath() |
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Setzt den Pfad, der den Speicherort von privaten Assemblys angibt, auf die leere Zeichenfolge ("") zurück. |
ClearShadowCopyPath() |
Veraltet.
Veraltet.
Veraltet.
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. Parameter geben den Namen einer Datei mit einer Assembly an, die den Typ und den Typnamen enthält. |
CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Erstellt eine neue Instanz eines angegebenen COM-Typs. Parameter geben den Namen einer Datei mit einer Assembly an, die den Typ und den Typnamen enthält. |
CreateDomain(String) |
Veraltet.
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 Anwendungsbasispfads, des relativen Suchpfads 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 Anwendungsbasispfads, des relativen Suchpfads 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, 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.
Veraltet.
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, Aktivierungsattribute und die Autorisierung zum Erstellen des Typs an. |
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. |
CreateInstanceAndUnwrap(String, String) |
Erstellt eine neue Instanz des angegebenen Typs. Parameter geben die Assembly, in der der Typ definiert ist, und den Namen des Typs an. |
CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Erstellt eine neue Instanz des angegebenen, in der angegebenen Assembly definierten Typs, die angibt, ob die Groß-/Kleinschreibung 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.
Veraltet.
Erstellt eine neue Instanz des angegebenen Typs. Parameter geben den Namen des Typs an und wie er gesucht und erstellt werden kann. |
CreateInstanceAndUnwrap(String, String, Object[]) |
Erstellt eine neue Instanz des angegebenen Typs. Parameter geben die Assembly an, in der der Typ definiert ist, und den Namen des Typs und ein Array von Aktivierungsattributen. |
CreateInstanceFrom(String, String) |
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.
Veraltet.
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. |
CreateInstanceFromAndUnwrap(String, String) |
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 die Groß-/Kleinschreibung 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.
Veraltet.
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. |
CreateObjRef(Type) |
Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Geerbt von MarshalByRefObject) |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
Definiert eine dynamische Assembly mit dem angegebenen Namen und Zugriffsmodus. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
Veraltet.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und Beweis. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Veraltet.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Beweis und den angegebenen Berechtigungsanforderungen. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und benutzerdefinierten Attributen. |
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, PermissionSet, PermissionSet, PermissionSet) |
Veraltet.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenem Namen, Zugriffsmodus und den angegebenen Berechtigungsanforderungen. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus und Speicherverzeichnis. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und der Synchronisierungsoption. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Veraltet.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und Beweis. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Veraltet.
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.
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.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis, Beweis sowie der angegebenen Synchronisierungsoption und den angegebenen Berechtigungsanforderungen und benutzerdefinierten Attributen. |
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
Veraltet.
Veraltet.
Definiert eine dynamische Assembly mit dem angegebenen Namen, Zugriffsmodus, Speicherverzeichnis und den angegebenen Berechtigungsanforderungen. |
DoCallBack(CrossAppDomainDelegate) |
Führt den Code in einer anderen Anwendungsdomäne aus, die durch den angegebenen Delegaten bezeichnet wird. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
ExecuteAssembly(String) |
Führt die Assembly in der angegebenen Datei aus. |
ExecuteAssembly(String, Evidence) |
Veraltet.
Veraltet.
Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise aus. |
ExecuteAssembly(String, Evidence, String[]) |
Veraltet.
Veraltet.
Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise und Argumente aus. |
ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
Veraltet.
Veraltet.
Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Beweise, Argumente, des Hashwerts und Hashalgorithmus aus. |
ExecuteAssembly(String, String[]) |
Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente aus. |
ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
Veraltet.
Führt die Assembly in der angegebenen Datei unter Verwendung der angegebenen Argumente, des Hashwerts und Hashalgorithmus aus. |
ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Veraltet.
Veraltet.
Führt bei Angabe eines AssemblyName die Assembly mit dem angegebenen Beweis und den angegebenen Argumenten aus. |
ExecuteAssemblyByName(AssemblyName, String[]) |
Führt bei Angabe eines AssemblyName die Assembly mit den angegebenen Argumenten aus. |
ExecuteAssemblyByName(String) |
Führt eine Assembly unter Angabe ihres Anzeigenamens aus. |
ExecuteAssemblyByName(String, Evidence) |
Veraltet.
Veraltet.
Führt eine Assembly unter Angabe ihres Anzeigenamens mit dem angegebenen Beweis aus. |
ExecuteAssemblyByName(String, Evidence, String[]) |
Veraltet.
Veraltet.
Führt die Assembly unter Angabe ihres Anzeigenamens mit dem angegebenen Beweis und den angegebenen Argumenten aus. |
ExecuteAssemblyByName(String, String[]) |
Führt die Assembly unter Angabe ihres Anzeigenamens mit den angegebenen Argumenten aus. |
GetAssemblies() |
Ruft die Assemblys ab, die in den Ausführungskontext dieser Anwendungsdomäne geladen wurden. |
GetCurrentThreadId() |
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Ruft den aktuellen Threadbezeichner ab. |
GetData(String) |
Ruft den in der aktuellen Anwendungsdomäne gespeicherten Wert für den angegebenen Namen ab. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
GetType() |
Ruft den Typ der aktuellen Instanz ab. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
InitializeLifetimeService() |
Führt zu einer unendlichen Lebensdauer der AppDomain, indem das Erstellen eines Lease verhindert wird. |
InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab. (Geerbt von MarshalByRefObject) |
IsCompatibilitySwitchSet(String) |
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(AssemblyName, Evidence) |
Veraltet.
Veraltet.
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(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(Byte[], Byte[], Evidence) |
Veraltet.
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. |
Load(String) |
Lädt eine Assembly bei Angabe ihres Anzeigenamens. |
Load(String, Evidence) |
Veraltet.
Veraltet.
Lädt eine Assembly bei Angabe ihres Anzeigenamens. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Geerbt von MarshalByRefObject) |
ReflectionOnlyGetAssemblies() |
Gibt die Assemblys zurück, die in den auf Reflektion beschränkten Kontext der Anwendungsdomäne geladen wurden. |
SetAppDomainPolicy(PolicyLevel) |
Veraltet.
Veraltet.
Legt die Sicherheitsrichtlinienebene für diese Anwendungsdomäne fest. |
SetCachePath(String) |
Veraltet.
Veraltet.
Veraltet.
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(String) |
Veraltet.
Veraltet.
Veraltet.
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(PrincipalPolicy) |
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 Prinzipal zu binden. |
SetShadowCopyFiles() |
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Aktiviert die Schattenkopiefunktion. |
SetShadowCopyPath(String) |
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Legt den angegebenen Verzeichnispfad als Speicherort für zu spiegelnde Assemblys fest. |
SetThreadPrincipal(IPrincipal) |
Legt das Standardprinzipalobjekt fest, das an Threads angefügt wird, wenn bei der Ausführung in dieser Anwendungsdomäne versucht wird, diese an einen Prinzipal zu binden. |
ToString() |
Ruft eine Zeichenfolgendarstellung ab, die den angezeigten Namen der Anwendungsdomäne und aller Kontextrichtlinien einschließt. |
Unload(AppDomain) |
Veraltet.
Entlädt die angegebene Anwendungsdomäne. |
Ereignisse
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 in dem auf Reflektion beschränkten Kontext 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. |
Explizite Schnittstellenimplementierungen
_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. |
_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. |
_AppDomain.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). |
_AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. |