Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

AppDomainManager-Klasse

 

Veröffentlicht: Oktober 2016

Stellt eine verwaltete Entsprechung eines nicht verwalteten Hosts dar.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.MarshalByRefObject
    System.AppDomainManager

[SecurityCriticalAttribute]
[ComVisibleAttribute(true)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
	Flags = SecurityPermissionFlag.Infrastructure)]
public class AppDomainManager : MarshalByRefObject

NameBeschreibung
System_CAPS_pubmethodAppDomainManager()

Initialisiert eine neue Instanz der AppDomainManager-Klasse.

NameBeschreibung
System_CAPS_pubpropertyApplicationActivator

Ruft die anwendungsaktivator, die die Aktivierung von Add-Ins und Manifest-basiertes Anwendungen für die Domäne behandelt.

System_CAPS_pubpropertyEntryAssembly

Ruft den Eintragsassembly für eine Anwendung ab.

System_CAPS_pubpropertyHostExecutionContextManager

Ruft den Host Ausführung Kontext-Manager, der den Fluss des Ausführungskontexts verwaltet.

System_CAPS_pubpropertyHostSecurityManager

Ruft die Host-Sicherheits-Manager, der an Sicherheit beteiligt ist für die Anwendungsdomäne Entscheidungen.

System_CAPS_pubpropertyInitializationFlags

Ruft die Initialisierungsflags für benutzerdefinierte Anwendungsdomänen-Manager ab.

NameBeschreibung
System_CAPS_pubmethodCheckSecuritySettings(SecurityState)

Gibt an, ob der angegebene Vorgang in der Anwendungsdomäne zulässig ist.

System_CAPS_pubmethodCreateDomain(String, Evidence, AppDomainSetup)

Gibt eine neue oder vorhandene Anwendungsdomäne zurück.

System_CAPS_protmethodSystem_CAPS_staticCreateDomainHelper(String, Evidence, AppDomainSetup)

Stellt eine Hilfsmethode, um eine Anwendungsdomäne zu erstellen.

System_CAPS_pubmethodCreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt verwendet die enthält.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetLifetimeService()

Ruft das Dienstobjekt für aktuellen Lebensdauer, das steuert, die lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodInitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodInitializeNewDomain(AppDomainSetup)

Initialisiert die neue Anwendungsdomäne.

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekt.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

Exception Condition
SecurityException

Der Aufrufer verfügt nicht über die ordnungsgemäßen Berechtigungen. Siehe den Abschnitt „Anforderungen“.

System_CAPS_importantWichtig

Verwenden Sie keine AppDomainManager zum Konfigurieren einer Anwendungsdomäne in ASP.NET. In ASP.NET verwenden muss die Konfiguration vom Host verarbeitet werden.

Implementieren der AppDomainManager Klasse ermöglicht eine hostanwendung zur Teilnahme an der Erstellung der neuen Anwendungsdomänen. Ersetzen Sie die Standardeinstellung AppDomainManager, identifizieren die Assembly und den Typ der Ersetzung AppDomainManager in der Umgebungsvariablen APPDOMAIN_MANAGER_ASM und APPDOMAIN_MANAGER_TYPE ein, oder verwenden die <appDomainManagerAssembly> und <appDomainManagerType> Elemente in der Konfigurationsdatei.</appDomainManagerType> </appDomainManagerAssembly> Die Assembly werden voll vertrauenswürdig sein und in den globalen Assemblycache oder im Verzeichnis der Anwendung ab. Die Typ- und Assemblynamen Namen müssen in den Umgebungsvariablen vollqualifiziert sein. Zum Beispiel:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

System_CAPS_importantWichtig

Wenn die Assembly, die die Unterklasse von enthält AppDomainManager richtet sich nach Assemblys, die mit der bedingten markiert sind AllowPartiallyTrustedCallersAttribute -Attribut (APTCA), müssen Sie diese Assemblys enthalten, in der Liste, die Sie zum Übergeben der PartialTrustVisibleAssemblies Eigenschaft von der AppDomainSetup mit Anwendungsdomänen erstellt werden. Andernfalls werden die Assemblys, die mit dem bedingten APTCA-Attribut gekennzeichnet sind deaktiviert.

Die AppDomainManager ist die verwaltete Entsprechung des nicht verwalteten Hosts. Ein AppDomainManager Objekt die Erstellung von neuen Anwendungsdomänen in einem Prozess beteiligt und anpassbaren neuen AppDomain bevor andere verwalteter Code ausgeführt wird. Die AppDomainManager kann auch Host-Managern, die Teilnahme an andere Aspekte der Ausführung von common Language Runtime bereitgestellt werden. Z. B. ein AppDomainManager Erkennen einer HostSecurityManager -Objekt, das in der Anwendungsdomäne sicherheitsentscheidungen beteiligt ist.

System_CAPS_noteHinweis

Nur Assemblys gewährt FullTrust, z. B. Assemblys im globalen Assemblycache oder als identifiziert fullTrustAssemblies in der AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) Methode geladen werden kann, der AppDomainManager Konstruktor und die InitializeNewDomain Methode.

System_CAPS_noteHinweis

Diese Klasse enthält einen Linkaufruf und einer vererbungsanforderung auf Klassenebene. Ein SecurityException wird ausgelöst, wenn nicht für den unmittelbaren Aufrufer oder die abgeleitete Klasse Berechtigung für die Infrastruktur verfügt. Weitere Informationen zu sicherheitsforderungen, finden Sie unter Link Demands und Vererbungsanforderungen.

Das folgende Beispiel zeigt eine sehr einfache Implementierung der AppDomainManager.

// To replace the default AppDomainManager, identify  the 
// replacement assembly and replacement type in the 
// APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE  
// environment variables. For example:
// set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
// set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    public class MyAppDomainManager : AppDomainManager
    {
        private HostSecurityManager mySecurityManager = null;

        public MyAppDomainManager()
        {
            Console.WriteLine(" My AppDomain Manager ");
            mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(
                "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " +
                "PublicKeyToken=5659fc598c2a503e", 
                "MyNamespace.MySecurityManager") as HostSecurityManager;
            Console.WriteLine(" Custom Security Manager Created.");
        }

        public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
        {
            Console.Write("Initialize new domain called:  ");
            Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
            InitializationFlags = 
                AppDomainManagerInitializationOptions.RegisterWithHost;
        }

        public override HostSecurityManager HostSecurityManager
        {
            get
            {
                return mySecurityManager;
            }
        }
    }
}

SecurityCriticalAttribute

Requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

SecurityAction.InheritanceDemand

for derived classes to plug executable code into the common language runtime hosting infrastructure. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure.

.NET Framework
Verfügbar seit 2.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: