Lire en anglais

Partager via


AppDomainManager Classe

Définition

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

C#
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
Héritage
AppDomainManager
Attributs

Exemples

L’exemple suivant montre une implémentation très simple de AppDomainManager.

C#
// 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;
            }
        }
    }
}

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 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 fiable et être contenu dans le global assembly cache ou le répertoire de l’application de démarrage. Les noms de type et d’assembly doivent être complets 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 AppDomainSetup que vous utilisez pour créer des domaines d’application. Sinon, les assemblys marqués avec l’attribut APTCA conditionnel seront désactivés.

est AppDomainManager l’équivalent managé de l’hôte non managé. Un AppDomainManager objet participe à la création de 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 d’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.

Note

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 .

Note

Cette classe contient une demande de lien 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 demandes 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 à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1