AppDomainManager Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 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.
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 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) |