AppDomainManager AppDomainManager AppDomainManager AppDomainManager Class

Definition

Stellt eine verwaltete Entsprechung eines nicht verwalteten Hosts dar.Provides a managed equivalent of an unmanaged host.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
type AppDomainManager = class
    inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
Vererbung
AppDomainManagerAppDomainManagerAppDomainManagerAppDomainManager
Attribute

Beispiele

Das folgende Beispiel zeigt eine sehr einfache Implementierung von AppDomainManager.The following example shows a very simple implementation of 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;
            }
        }
    }
}
' 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
Imports System
Imports System.Collections
Imports System.Net
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Security.Principal
Imports System.Threading
Imports System.Runtime.InteropServices

<assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
<SecurityPermissionAttribute(SecurityAction.LinkDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, _
    Flags:=SecurityPermissionFlag.Infrastructure)> _
<GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")> _
Public Class MyAppDomainManager
    Inherits AppDomainManager
    Private mySecurityManager As HostSecurityManager = Nothing
    
    Public Sub New() 
        Console.WriteLine(" My AppDomain Manager ")
        mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap( _
            "CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " & _
            "PublicKeyToken=5659fc598c2a503e", "MyNamespace.MySecurityManager")
        Console.WriteLine(" Custom Security Manager Created.")    
    End Sub 'New
    
    Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
        As AppDomainSetup) 
        Console.Write("Initialize new domain called:  ")
        Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
        InitializationFlags = _
            AppDomainManagerInitializationOptions.RegisterWithHost   
    End Sub 'InitializeNewDomain

    Public Overrides ReadOnly Property HostSecurityManager() _
        As HostSecurityManager 
        Get
            Return mySecurityManager
        End Get
    End Property
End Class 'MyAppDomainManager 

Hinweise

Wichtig

Verwenden AppDomainManager Sie nicht, um eine Anwendungsdomäne in ASP.net zu konfigurieren.Do not use AppDomainManager to configure an application domain in ASP.NET. In ASP.NET muss die Konfiguration vom Host verarbeitet werden.In ASP.NET, configuration must be handled by the host.

Durch das AppDomainManager Implementieren der-Klasse kann eine Host Anwendung an der Erstellung neuer Anwendungs Domänen teilnehmen.Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. Um die Standardeinstellung AppDomainManagerzu ersetzen, identifizieren Sie die Assembly und den AppDomainManager Typ der Ersetzung in den Umgebungsvariablen APPDOMAIN_MANAGER_ASM und APPDOMAIN_MANAGER_TYPE, oder verwenden Sie die <AppDomainManagerAssembly-> und AppDomainManagerType > Elemente in der Konfigurationsdatei. <To replace the default AppDomainManager, identify the assembly and type of the replacement AppDomainManager in the APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE environment variables, or use the <appDomainManagerAssembly> and <appDomainManagerType> elements in your configuration file. Die Assembly muss voll vertrauenswürdig sein und im globalen Assemblycache oder im Verzeichnis der Start Anwendung enthalten sein.The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. Der Typ-und der AssemblyName müssen in den Umgebungsvariablen voll qualifiziert sein.The type and assembly names must be fully qualified in the environment variables. Beispiel:For example:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Wichtig

Wenn die Assembly, die die Unterklasse von AppDomainManager enthält, von mit dem Conditional AllowPartiallyTrustedCallersAttribute -Attribut (APTCA) markierten Assemblys abhängt, müssen Sie diese Assemblys in der Liste einschließen PartialTrustVisibleAssemblies , die Sie an die-Eigenschaft des AppDomainSetupSie verwenden zum Erstellen von Anwendungs Domänen.If the assembly that contains your subclass of AppDomainManager depends on assemblies that are marked with the conditional AllowPartiallyTrustedCallersAttribute (APTCA) attribute, you must include those assemblies in the list that you pass to the PartialTrustVisibleAssemblies property of the AppDomainSetup you use to create application domains. Andernfalls werden die Assemblys, die mit dem bedingten APTCA-Attribut markiert sind, deaktiviert.Otherwise, the assemblies that are marked with the conditional APTCA attribute will be disabled.

Der AppDomainManager ist die verwaltete Entsprechung des nicht verwalteten Hosts.The AppDomainManager is the managed equivalent of the unmanaged host. Ein AppDomainManager Objekt ist an der Erstellung neuer Anwendungs Domänen in einem Prozess beteiligt und kann die neue AppDomain anpassen, bevor der andere verwaltete Code ausgeführt wird.An AppDomainManager object participates in the creation of new application domains in a process and can customize the new AppDomain before other managed code runs. Der AppDomainManager kann auch Host-Manager bereitstellen, die an anderen Aspekten der Common Language Runtime Ausführung beteiligt sind.The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. Beispielsweise AppDomainManager kann ein- HostSecurityManager Objekt identifizieren, das an den Sicherheitsentscheidungen der Anwendungsdomäne beteiligt ist.For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

Hinweis

AppDomainManager fullTrustAssemblies AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) Nur zugewiesene Assemblys InitializeNewDomain , z. b. Assemblys im globalen Assemblycache oder als in der-Methode identifiziert, können im Konstruktor und in der-Methode geladen werden. FullTrustOnly assemblies granted FullTrust, such as assemblies in the global assembly cache or identified as fullTrustAssemblies in the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) method can be loaded in the AppDomainManager constructor and the InitializeNewDomain method.

Hinweis

Diese Klasse enthält einen Link Aufruf und einen Vererbungs Bedarf auf Klassenebene.This class contains a link demand and an inheritance demand at the class level. Eine SecurityException wird ausgelöst, wenn der unmittelbare Aufrufer oder die abgeleitete Klasse nicht über eine Infrastruktur Berechtigung verfügt.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Ausführliche Informationen zu Sicherheitsanforderungen finden Sie unter Link Aufrufe und Vererbungs Anforderungen.For details about security demands, see Link Demands and Inheritance Demands.

Konstruktoren

AppDomainManager() AppDomainManager() AppDomainManager() AppDomainManager()

Initialisiert eine neue Instanz der AppDomainManager-Klasse.Initializes a new instance of the AppDomainManager class.

Eigenschaften

ApplicationActivator ApplicationActivator ApplicationActivator ApplicationActivator

Ruft den Anwendungsaktivierer ab, der die Aktivierung von Add-Ins und manifestbasierten Anwendungen für die Domäne handhabt.Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.

EntryAssembly EntryAssembly EntryAssembly EntryAssembly

Ruft die Eintragsassembly für eine Anwendung ab.Gets the entry assembly for an application.

HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager

Ruft den Hostausführungskontext-Manager ab, der den Fluss vom Ausführungskontext verwaltet.Gets the host execution context manager that manages the flow of the execution context.

HostSecurityManager HostSecurityManager HostSecurityManager HostSecurityManager

Ruft den Hostsicherheits-Manager ab, der an Sicherheitsentscheidungen für die Anwendungsdomäne teilnimmt.Gets the host security manager that participates in security decisions for the application domain.

InitializationFlags InitializationFlags InitializationFlags InitializationFlags

Ruft die Initialisierungsflags für benutzerdefinierte Anwendungsdomänen-Manager ab.Gets the initialization flags for custom application domain managers.

Methoden

CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState)

Gibt an, ob der angegebene Vorgang in der Anwendungsdomäne zulässig ist.Indicates whether the specified operation is allowed in the application domain.

CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup)

Gibt eine neue oder vorhandene Anwendungsdomäne zurück.Returns a new or existing application domain.

CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup)

Stellt eine Hilfsmethode zum Erstellen einer Anwendungsdomäne bereit.Provides a helper method to create an application domain.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup)

Initialisiert die neue Anwendungsdomäne.Initializes the new application domain.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Sicherheit

SecurityCriticalAttribute
Erfordert volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.Requires full trust for the immediate caller. Dieser Member kann nicht von teilweise vertrauenswürdigem oder transparentem Code verwendet werden.This member cannot be used by partially trusted or transparent code.

InheritanceDemand
für abgeleitete Klassen, um ausführbaren Code an die Common Language Runtime Hostinginfrastruktur zu binden.for derived classes to plug executable code into the common language runtime hosting infrastructure. Zugeordnete Enumeration: InfrastructureAssociated enumeration: Infrastructure.

Gilt für: