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 der 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 Sie keine AppDomainManager zum Konfigurieren einer Anwendungsdomäne in ASP.NET.Do not use AppDomainManager to configure an application domain in ASP.NET. In ASP.NET muss die Konfiguration vom Host behandelt werden.In ASP.NET, configuration must be handled by the host.

Implementieren der AppDomainManager Klasse ermöglicht eine hostanwendung zur Teilnahme an der Erstellung neuer Anwendungsdomänen.Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. Ersetzen Sie die Standardeinstellung AppDomainManager, identifizieren Sie die Assembly und Typ der Ersetzung AppDomainManager in der Umgebungsvariablen APPDOMAIN_MANAGER_ASM und APPDOMAIN_MANAGER_TYPE ein, oder Verwenden der <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 vollständig vertrauenswürdig sein und enthalten sein, in dem globalen Assemblycache oder das Verzeichnis der Anwendung ab.The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. Die Namen von Typ und die Assembly müssen in den Umgebungsvariablen voll qualifiziert werden.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 enthält AppDomainManager Assemblys, die mit der bedingten markiert sind, hängt AllowPartiallyTrustedCallersAttribute -Attribut (APTCA), müssen Sie die Assemblys einschließen, in der Liste, die Sie zum Übergeben der PartialTrustVisibleAssemblies Eigenschaft der AppDomainSetupSie verwenden, um die Anwendungsdomänen zu erstellen.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.

Die AppDomainManager ist die verwaltete Entsprechung des nicht verwalteten Hosts.The AppDomainManager is the managed equivalent of the unmanaged host. Ein AppDomainManager Objekt bei der Erstellung neuer Anwendungsdomänen in einem Prozess beteiligt ist, und können anpassen, die neue AppDomain vor anderen verwalteter 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. Die AppDomainManager auch Host-Managern, die Teilnahme an andere Aspekte der Ausführung der common Language Runtime bereitgestellt werden können.The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. Z. B. eine AppDomainManager Erkennen einer HostSecurityManager Objekt, das in der Anwendungsdomäne der Sicherheitsfragen die richtigen Entscheidungen teilnimmt.For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

Hinweis

Nur Assemblys gewährt FullTrust, z. B. Assemblys im globalen Assemblycache oder als identifiziert fullTrustAssemblies in die AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) Methode geladen werden kann, der AppDomainManager Konstruktor und die InitializeNewDomain Methode.Only 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 Linkaufruf und einer vererbungsanforderung auf Klassenebene.This class contains a link demand and an inheritance demand at the class level. Ein SecurityException wird ausgelöst, wenn Sie entweder den unmittelbaren Aufrufer oder die abgeleitete Klasse Infrastruktur Berechtigung nicht besitzt.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Weitere Informationen zu sicherheitsanforderungen, finden Sie unter Verknüpfungsaufrufe und Vererbungsanforderungen.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, die ausführbaren Code in der common Language Runtime hosten Infrastruktur eingebunden werden.for derived classes to plug executable code into the common language runtime hosting infrastructure. Zugeordnete Enumeration: InfrastructureAssociated enumeration: Infrastructure.

Gilt für: