AppDomainManager Classe

Définition

Fournit un équivalent managé d’un hôte non managé.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomainManager = class
    inherit MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type AppDomainManager = class
    inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
Héritage
AppDomainManager
Attributs

Exemples

L’exemple suivant montre une implémentation très simple de 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.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;

[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]

namespace MyNamespace
{
    [GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
    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.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
    
    Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
        As AppDomainSetup) 
        Console.Write("Initialize new domain called:  ")
        Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
        InitializationFlags = _
            AppDomainManagerInitializationOptions.RegisterWithHost   
    End Sub

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

Remarques

Important

N’utilisez AppDomainManager pas pour configurer un domaine d’application dans ASP.NET. Dans ASP.NET, la configuration doit être gérée par l’hôte.

L’implémentation de la AppDomainManager classe permet à une application d’hébergement de participer à la création de nouveaux domaines d’application. Pour remplacer la valeur par défaut AppDomainManager, identifiez l’assembly et le type du remplacement AppDomainManager dans les variables d’environnement APPDOMAIN_MANAGER_ASM et APPDOMAIN_MANAGER_TYPE, ou utilisez les <éléments appDomainManagerAssembly> et <appDomainManagerType> dans votre fichier de configuration. L’assembly doit être entièrement approuvé et être contenu dans le global assembly cache ou dans le répertoire de l’application de démarrage. Les noms de type et d’assembly doivent être entièrement qualifiés dans les variables d’environnement. Par exemple :

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Important

Si l’assembly qui contient votre sous-classe de dépend d’assemblys AppDomainManager marqués avec l’attribut conditionnel AllowPartiallyTrustedCallersAttribute (APTCA), vous devez inclure ces assemblys dans la liste que vous passez à la PartialTrustVisibleAssemblies propriété du que vous utilisez pour créer des AppDomainSetup domaines d’application. Sinon, les assemblys marqués avec l’attribut APTCA conditionnel seront désactivés.

AppDomainManager est l’équivalent managé de l’hôte non managé. Un AppDomainManager objet participe à la création de nouveaux domaines d’application dans un processus et peut personnaliser le nouveau AppDomain avant l’exécution d’autres codes managés. peut AppDomainManager également fournir des gestionnaires hôtes qui participent à d’autres aspects de l’exécution du Common Language Runtime. Par exemple, un AppDomainManager peut identifier un HostSecurityManager objet qui participe aux décisions de sécurité du domaine d’application.

Notes

Seuls les assemblys accordés FullTrust, tels que les assemblys dans le global assembly cache ou identifiés comme fullTrustAssemblies dans la AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) méthode, peuvent être chargés dans le AppDomainManager constructeur et la InitializeNewDomain méthode.

Notes

Cette classe contient une demande de liaison et une demande d’héritage au niveau de la classe. Un SecurityException est levée lorsque l’appelant immédiat ou la classe dérivée n’a pas d’autorisation d’infrastructure. Pour plus d’informations sur les exigences de sécurité, consultez Demandes de lien et demandes d’héritage.

Constructeurs

AppDomainManager()

Initialise une nouvelle instance de la classe AppDomainManager.

Propriétés

ApplicationActivator

Obtient l'activateur d'applications qui gère l'activation de compléments et d'applications basées sur un manifeste pour le domaine.

EntryAssembly

Obtient l'assembly d'entrée pour une application.

HostExecutionContextManager

Obtient le gestionnaire de contexte d'exécution de l'hôte qui gère le flux du contexte d'exécution.

HostSecurityManager

Obtient le gestionnaire de sécurité hôte qui participe aux décisions de sécurité pour le domaine d'application.

InitializationFlags

Obtient les indicateurs d'initialisation pour les gestionnaires de domaine d'application personnalisés.

Méthodes

CheckSecuritySettings(SecurityState)

Indique si l'opération spécifiée est autorisée dans le domaine d'application.

CreateDomain(String, Evidence, AppDomainSetup)

Retourne un domaine d'application nouveau ou existant.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Fournit une méthode d'assistance pour créer un domaine d'application.

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Initialise le nouveau domaine d'application.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à