Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

AppDomain classe

 

Date de publication : novembre 2016

Représente un domaine d'application qui est un environnement isolé dans lequel s'exécutent les applications. Cette classe ne peut pas être héritée.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)


[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, 
	IEvidenceFactory

NomDescription
System_CAPS_pubpropertyActivationContext

Obtient le contexte d'activation du domaine d'application actuel.

System_CAPS_pubpropertyApplicationIdentity

Obtient l'identité de l'application dans le domaine d'application.

System_CAPS_pubpropertyApplicationTrust

Obtient des informations qui décrivent les autorisations accordées à une application et indiquent si l'application possède un niveau de confiance qui lui permet de s'exécuter.

System_CAPS_pubpropertyBaseDirectory

Obtient le répertoire de base qu'utilise le programme de résolution d'assembly pour détecter les assemblys.

System_CAPS_pubpropertySystem_CAPS_staticCurrentDomain

Obtient le domaine d'application actuel pour le Thread actuel.

System_CAPS_pubpropertyDomainManager

Obtient le gestionnaire de domaine qui a été fourni par l'hôte quand le domaine d'application a été initialisé.

System_CAPS_pubpropertyDynamicDirectory

Obtient le répertoire utilisé par le programme de résolution d'assembly pour détecter les assemblys créés de manière dynamique.

System_CAPS_pubpropertyEvidence

Obtient le Evidence associé à ce domaine d'application.

System_CAPS_pubpropertyFriendlyName

Obtient le nom convivial de ce domaine d'application.

System_CAPS_pubpropertyId

Obtient un entier qui identifie de façon unique le domaine d'application au sein du processus.

System_CAPS_pubpropertyIsFullyTrusted

Obtient une valeur qui indique si les assemblys chargés dans le domaine d'application actuel s'exécutent avec la confiance totale.

System_CAPS_pubpropertyIsHomogenous

Obtient une valeur qui indique si le domaine d'application actuel dispose d'un jeu d'autorisations accordé à tous les assemblys chargés dans le domaine d'application.

System_CAPS_pubpropertySystem_CAPS_staticMonitoringIsEnabled

Obtient ou définit une valeur qui indique si l'analyse de la mémoire et du processeur des domaines d'application est activée pour le processus actuel. Quand l'analyse a été activée pour un processus, elle ne peut plus être désactivée.

System_CAPS_pubpropertyMonitoringSurvivedMemorySize

Obtient le nombre d'octets qui ont survécu à la dernière collection et qui sont référencés par le domaine d'application actuel.

System_CAPS_pubpropertySystem_CAPS_staticMonitoringSurvivedProcessMemorySize

Obtient le nombre total d'octets qui ont survécu à la dernière collection pour tous les domaines d'application dans le processus.

System_CAPS_pubpropertyMonitoringTotalAllocatedMemorySize

Obtient la taille totale, en octets, de toutes les allocations de mémoire effectuées par le domaine d'application depuis sa création, sans soustraire la mémoire collectée.

System_CAPS_pubpropertyMonitoringTotalProcessorTime

Obtient le temps processeur total utilisé par tous les threads pendant leur exécution dans le domaine d'application actuel, depuis le démarrage du processus.

System_CAPS_pubpropertyPermissionSet

Obtient le jeu d'autorisations d'un domaine d'application en mode bac à sable (sandbox).

System_CAPS_pubpropertyRelativeSearchPath

Obtient le chemin d’accès sous le répertoire de base où le programme de résolution d’assembly doit détecter les assemblys privés.

System_CAPS_pubpropertySetupInformation

Obtient les informations de configuration du domaine d'application pour cette instance.

System_CAPS_pubpropertyShadowCopyFiles

Obtient une indication précisant si le domaine d'application est configuré pour effectuer un cliché instantané des fichiers.

NomDescription
System_CAPS_pubmethodAppendPrivatePath(String)

Obsolète.Ajoute le nom de répertoire spécifié à la liste des chemins d’accès privée.

System_CAPS_pubmethodApplyPolicy(String)

Retourne le nom complet d'assembly une fois que la stratégie a été appliquée.

System_CAPS_pubmethodClearPrivatePath()

Obsolète.Rétablit la chaîne vide ("") comme valeur du chemin d’accès qui spécifie l’emplacement des assemblys privés.

System_CAPS_pubmethodClearShadowCopyPath()

Obsolète.Rétablit la chaîne vide ("") comme valeur de la liste des répertoires contenant des clichés instantanés d'assemblys.

System_CAPS_pubmethodCreateComInstanceFrom(String, String)

Crée une instance d'un type COM spécifié. Les paramètres spécifient le nom d'un fichier qui contient un assembly contenant le type et le nom du type.

System_CAPS_pubmethodCreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Crée une instance d'un type COM spécifié. Les paramètres spécifient le nom d'un fichier qui contient un assembly contenant le type et le nom du type.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String)

Crée un domaine d'application portant le nom spécifié.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence)

Crée un domaine d'application portant le nom spécifié à l'aide de la preuve fournie.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, AppDomainSetup)

Crée un domaine d'application à l'aide du nom, de la preuve et des informations de configuration du domaine d'application spécifiés.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])

Crée un domaine d'application à l'aide du nom, de la preuve, des informations de configuration du domaine d'application, du jeu d'autorisations par défaut et du tableau d'assemblys ayant un niveau de confiance suffisant.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, String, String, Boolean)

Crée un domaine d'application portant le nom donné, à l'aide de la preuve, du chemin d'accès de base de l'application, du chemin de recherche relatif et d'un paramètre spécifiant si un cliché instantané d'un assembly doit être chargé dans le domaine d'application.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[])

Crée un domaine d'application portant le nom donné, à l'aide de la preuve, du chemin d'accès de base de l'application, du chemin de recherche relatif et d'un paramètre spécifiant si un cliché instantané d'un assembly doit être chargé dans le domaine d'application. Spécifie une méthode de rappel qui est appelée quand le domaine d'application est initialisé, et un tableau d'arguments de type chaîne à passer à la méthode de rappel.

System_CAPS_pubmethodCreateInstance(String, String)

Crée une instance du type spécifié défini dans l'assembly déterminé.

System_CAPS_pubmethodCreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crée une instance du type spécifié défini dans l'assembly déterminé. Les paramètres spécifient un binder, des indicateurs de liaisons, des arguments de constructeur, les informations spécifiques à la culture utilisées pour interpréter les arguments et des attributs d'activation facultatifs.

System_CAPS_pubmethodCreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsolète.Crée une instance du type spécifié défini dans l'assembly déterminé. Les paramètres spécifient un binder, des indicateurs de liaisons, des arguments de constructeur, des informations propres à la culture utilisées pour interpréter les arguments, des attributs d'activation et l'autorisation de créer le type.

System_CAPS_pubmethodCreateInstance(String, String, Object[])

Crée une instance du type spécifié défini dans l'assembly déterminé. Un paramètre spécifie un tableau d'attributs d'activation.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String)

Crée une instance du type spécifié. Les paramètres spécifient l'assembly dans lequel le type est défini et le nom du type.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crée une instance du type spécifié défini dans l'assembly spécifié, en indiquant si la casse du nom de type est ignorée ; les attributs de liaison et le binder utilisés pour sélectionner le type à créer ; les arguments du constructeur ; la culture et les attributs d'activation.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsolète.Crée une instance du type spécifié. Les paramètres spécifient le nom du type et la manière dont il est recherché et créé.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Object[])

Crée une instance du type spécifié. Les paramètres spécifient l'assembly dans lequel le type est défini, le nom du type et un tableau d'attributs d'activation.

System_CAPS_pubmethodCreateInstanceFrom(String, String)

Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsolète.Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Object[])

Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String)

Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Crée une instance du type spécifié défini dans le fichier d'assembly spécifié, en indiquant si la casse du nom de type est ignorée ; les attributs de liaison et le binder utilisés pour sélectionner le type à créer ; les arguments du constructeur ; la culture et les attributs d'activation.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsolète.Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Object[])

Crée une instance du type spécifié défini dans le fichier d'assembly déterminé.

System_CAPS_pubmethodCreateObjRef(Type)

Crée un objet qui contient toutes les informations requises pour générer un proxy permettant de communiquer avec un objet distant.(Hérité de MarshalByRefObject.)

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Définit un assembly dynamique avec le nom et le mode d'accès spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès et la preuve spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès, la preuve et les demandes d'autorisations spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Définit un assembly dynamique avec le nom, le mode d'accès et les attributs personnalisés spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource)

Définit un assembly dynamique avec le nom, le mode d'accès et les attributs personnalisés spécifiés, à l'aide de la source indiquée pour son contexte de sécurité.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès et les demandes d'autorisations spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Définit un assembly dynamique avec le nom, le mode d'accès et le répertoire de stockage spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)

Définit un assembly dynamique avec le nom, le mode d’accès, le répertoire de stockage et l’option de synchronisation spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès, le répertoire de stockage et la preuve spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès, le répertoire de stockage, la preuve et les demandes d'autorisations spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès, le répertoire de stockage, la preuve, les demandes d'autorisations et l'option de synchronisation spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)

Obsolète.Définit un assembly dynamique avec le nom, le mode d’accès, le répertoire de stockage, la preuve, les demandes d’autorisations, l’option de synchronisation et les attributs personnalisés spécifiés.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)

Obsolète.Définit un assembly dynamique avec le nom, le mode d'accès, le répertoire de stockage et les demandes d'autorisations spécifiés.

System_CAPS_pubmethodDoCallBack(CrossAppDomainDelegate)

Exécute le code dans un autre domaine d'application identifié par le délégué spécifié.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodExecuteAssembly(String)

Exécute l'assembly contenu dans le fichier spécifié.

System_CAPS_pubmethodExecuteAssembly(String, Evidence)

Obsolète.Exécute l'assembly contenu dans le fichier spécifié à l'aide de la preuve spécifiée.

System_CAPS_pubmethodExecuteAssembly(String, Evidence, String[])

Obsolète.Exécute l’assembly contenu dans le fichier spécifié à l’aide de la preuve et des arguments spécifiés.

System_CAPS_pubmethodExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)

Obsolète.Exécute l’assembly contenu dans le fichier spécifié à l’aide de la preuve, des arguments, de la valeur et de l’algorithme de hachage spécifiés.

System_CAPS_pubmethodExecuteAssembly(String, String[])

Exécute l’assembly contenu dans le fichier spécifié à l’aide des arguments spécifiés.

System_CAPS_pubmethodExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)

Exécute l’assembly contenu dans le fichier spécifié à l’aide des arguments, de la valeur et de l’algorithme de hachage spécifiés.

System_CAPS_pubmethodExecuteAssemblyByName(AssemblyName, Evidence, String[])

Obsolète.Exécute l'assembly à partir d'un AssemblyName, à l'aide de la preuve et des arguments spécifiés.

System_CAPS_pubmethodExecuteAssemblyByName(AssemblyName, String[])

Exécute l'assembly à partir d'un AssemblyName, à l'aide des arguments spécifiés.

System_CAPS_pubmethodExecuteAssemblyByName(String)

Charge un assembly en fonction de son nom complet.

System_CAPS_pubmethodExecuteAssemblyByName(String, Evidence)

Obsolète.Exécute un assembly en fonction de son nom complet, à l'aide de la preuve spécifiée.

System_CAPS_pubmethodExecuteAssemblyByName(String, Evidence, String[])

Obsolète.Exécute l’assembly en fonction de son nom complet, à l’aide de la preuve et des arguments spécifiés.

System_CAPS_pubmethodExecuteAssemblyByName(String, String[])

Exécute l’assembly en fonction de son nom complet, à l’aide des arguments spécifiés.

System_CAPS_pubmethodGetAssemblies()

Obtient les assemblys qui ont été chargés dans le contexte d'exécution de ce domaine d'application.

System_CAPS_pubmethodSystem_CAPS_staticGetCurrentThreadId()

Obsolète.Obtient l'identificateur du thread actuel.

System_CAPS_pubmethodGetData(String)

Obtient la valeur stockée dans le domaine d'application actuel pour le nom spécifié.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetLifetimeService()

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.)

System_CAPS_pubmethodGetType()

Obtient le type de l'instance actuelle.

System_CAPS_pubmethodInitializeLifetimeService()

Donne à AppDomain une durée de vie infinie en empêchant toute création de bail.(Remplace MarshalByRefObject.InitializeLifetimeService().)

System_CAPS_pubmethodIsCompatibilitySwitchSet(String)

Obtient une valeur booléenne Nullable qui indique si les commutateurs de compatibilité sont définis, et si tel est le cas, si le commutateur de compatibilité spécifié est défini.

System_CAPS_pubmethodIsDefaultAppDomain()

Retourne une valeur qui indique si le domaine d'application est le domaine d'application par défaut du processus.

System_CAPS_pubmethodIsFinalizingForUnload()

Indique si le déchargement de ce domaine d'application est en cours et si les objets qu'il contient sont en cours de finalisation par le Common Language Runtime.

System_CAPS_pubmethodLoad(AssemblyName)

Charge Assembly en fonction de son AssemblyName.

System_CAPS_pubmethodLoad(AssemblyName, Evidence)

Obsolète.Charge Assembly en fonction de son AssemblyName.

System_CAPS_pubmethodLoad(Byte[])

Charge Assembly avec l'image au format COFF (Common Object File Format) contenant un Assembly émis.

System_CAPS_pubmethodLoad(Byte[], Byte[])

Charge Assembly avec l'image au format COFF (Common Object File Format) contenant un Assembly émis. Les octets bruts représentant les symboles de Assembly sont également chargés.

System_CAPS_pubmethodLoad(Byte[], Byte[], Evidence)

Obsolète.Charge Assembly avec l'image au format COFF (Common Object File Format) contenant un Assembly émis. Les octets bruts représentant les symboles de Assembly sont également chargés.

System_CAPS_pubmethodLoad(String)

Charge Assembly en fonction de son nom complet.

System_CAPS_pubmethodLoad(String, Evidence)

Obsolète.Charge Assembly en fonction de son nom complet.

System_CAPS_pubmethodReflectionOnlyGetAssemblies()

Retourne les assemblys qui ont été chargés dans le contexte de réflexion uniquement du domaine d'application.

System_CAPS_pubmethodSetAppDomainPolicy(PolicyLevel)

Obsolète.Définit le niveau de stratégie de sécurité pour ce domaine d'application.

System_CAPS_pubmethodSetCachePath(String)

Obsolète.Définit le chemin d'accès du répertoire spécifié comme emplacement pour les clichés instantanés des assemblys.

System_CAPS_pubmethodSetData(String, Object)

Assigne la valeur spécifiée à la propriété du domaine d'application spécifié.

System_CAPS_pubmethodSetData(String, Object, IPermission)

Assigne la valeur spécifiée à la propriété du domaine d'application spécifiée, avec une autorisation spécifiée à exiger de l'appelant quand la propriété est récupérée.

System_CAPS_pubmethodSetDynamicBase(String)

Obsolète.Définit le chemin de répertoire spécifié comme répertoire de base des sous-répertoires dans lesquels sont stockés les fichiers générés de manière dynamique et à partir desquels ils sont accessibles.

System_CAPS_pubmethodSetPrincipalPolicy(PrincipalPolicy)

Spécifie la façon dont les objets Principal et Identity doivent être attachés à un thread si celui-ci tente d'établir une liaison vers un principal au moment de l'exécution dans ce domaine d'application.

System_CAPS_pubmethodSetShadowCopyFiles()

Obsolète.Active les clichés instantanés.

System_CAPS_pubmethodSetShadowCopyPath(String)

Obsolète.Définit le chemin d'accès du répertoire spécifié comme emplacement pour les clichés instantanés des assemblys.

System_CAPS_pubmethodSetThreadPrincipal(IPrincipal)

Définit l'objet Principal par défaut à attacher aux threads si ceux-ci tentent d'établir une liaison vers un principal au moment de l'exécution dans ce domaine d'application.

System_CAPS_pubmethodToString()

Obtient une représentation sous forme de chaîne qui inclut le nom convivial du domaine d'application et les stratégies de contexte.(Remplace Object.ToString().)

System_CAPS_pubmethodSystem_CAPS_staticUnload(AppDomain)

Décharge le domaine d'application spécifié.

NomDescription
System_CAPS_pubeventAssemblyLoad

Se produit quand un assembly est chargé.

System_CAPS_pubeventAssemblyResolve

Se produit quand la résolution d'un assembly échoue.

System_CAPS_pubeventDomainUnload

Se produit quand AppDomain est sur le point d'être déchargé.

System_CAPS_pubeventFirstChanceException

Se produit quand une exception est levée dans le code managé, avant que l'exécution ne recherche un gestionnaire d'exceptions dans la pile des appels du domaine d'application.

System_CAPS_pubeventProcessExit

Se produit quand le processus parent du domaine d'application par défaut s'arrête.

System_CAPS_pubeventReflectionOnlyAssemblyResolve

Se produit quand la résolution d’un assembly échoue dans le contexte de réflexion uniquement.

System_CAPS_pubeventResourceResolve

Se produit quand la résolution d’une ressource échoue car la ressource n’est pas une ressource liée ou incorporée valide de l’assembly.

System_CAPS_pubeventTypeResolve

Se produit quand la résolution d’un type échoue.

System_CAPS_pubeventUnhandledException

Se produit quand une exception n'est pas interceptée.

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

Domaines d’application, représentés par AppDomain objets, contribuer à fournir des limites d’isolation, de déchargement et de sécurité pour l’exécution de code managé.

  • Utilisez les domaines d’application pour isoler les tâches qui peuvent interrompre un processus. Si l’état de le AppDomain qui exécute une tâche devient instable, le AppDomain peut être déchargé sans affecter le processus. Ceci est important lorsqu’un processus doit fonctionner pendant de longues périodes sans redémarrer. Vous pouvez également utiliser des domaines d’application pour isoler les tâches qui ne doivent pas partager de données.

  • Si un assembly est chargé dans le domaine d’application par défaut, il ne peut pas être déchargé de la mémoire pendant que le processus est en cours d’exécution. Toutefois, si vous ouvrez un deuxième domaine d’application pour charger et exécuter l’assembly, l’assembly est déchargé lorsque ce domaine d’application est déchargé. Cette technique permet de réduire le jeu de travail des longs processus qui utilisent parfois des DLL volumineuses.

Plusieurs domaines d’application peuvent s’exécuter dans un processus unique. Toutefois, il n'est pas une corrélation entre les domaines d’application et les threads. Plusieurs threads peuvent appartenir à un seul domaine d’application, et pendant un thread donné ne se limite pas à un domaine d’application unique à un moment donné, un thread s’exécute dans un domaine d’application unique.

Domaines d’application sont créés à l’aide de la CreateDomain méthode. AppDomain les instances sont utilisées pour charger et exécuter des assemblys (Assembly). Lorsqu’un AppDomain est n’est plus utilisé, il peut être déchargé.

La AppDomain classe implémente un jeu d’événements qui permettent aux applications de répondre lorsqu’un assembly est chargé, un domaine d’application est déchargé, ou lorsqu’une exception non gérée est levée.

Pour plus d’informations sur l’utilisation des domaines d’application, consultez la page Domaines d'application.

Cette classe implémente le MarshalByRefObject, _AppDomain, et IEvidenceFactory interfaces.

Vous ne devez jamais créer un wrapper accessible à distance pour un AppDomain objet. Cela a pu publier une référence distante à AppDomain, exposant des méthodes telles que CreateInstance pour l’accès à distance et en détruisant ainsi la sécurité d’accès du code pour ce AppDomain. Clients malveillants qui se connectent à la distance AppDomain pu accéder à n’importe quelle ressource le AppDomain lui-même a accès. Ne pas créer de wrappers accessibles à distance pour un type qui étend MarshalByRefObject et qui implémente des méthodes utilisables par les clients malveillants de contourner le système de sécurité.

System_CAPS_cautionAttention

La valeur par défaut pour le AppDomainSetup.DisallowCodeDownload propriété est false. Ce paramètre est non sécurisé pour les services. Pour empêcher les services de télécharger du code de confiance partielle, définissez cette propriété sur true.

Cet exemple montre comment créer un nouveau AppDomain, instancier un type dans ce nouveau AppDomain, et de communiquer avec l’objet de ce type. En outre, cet exemple montre comment décharger le AppDomain à l’origine de l’objet par le garbage collecté.

using System;
using System.Reflection;
using System.Threading;

class Module1
{
    public static void Main()
    {
        // Get and display the friendly name of the default AppDomain.
        string callingDomainName = Thread.GetDomain().FriendlyName;
        Console.WriteLine(callingDomainName);

        // Get and display the full name of the EXE assembly.
        string exeAssembly = Assembly.GetEntryAssembly().FullName;
        Console.WriteLine(exeAssembly);

        // Construct and initialize settings for a second AppDomain.
        AppDomainSetup ads = new AppDomainSetup();
        ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;

        ads.DisallowBindingRedirects = false;
        ads.DisallowCodeDownload = true;
        ads.ConfigurationFile = 
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

        // Create the second AppDomain.
        AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads);

        // Create an instance of MarshalbyRefType in the second AppDomain. 
        // A proxy to the object is returned.
        MarshalByRefType mbrt = 
            (MarshalByRefType) ad2.CreateInstanceAndUnwrap(
                exeAssembly, 
                typeof(MarshalByRefType).FullName
            );

        // Call a method on the object via the proxy, passing the 
        // default AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName);

        // Unload the second AppDomain. This deletes its object and 
        // invalidates the proxy object.
        AppDomain.Unload(ad2);
        try
        {
            // Call the method again. Note that this time it fails 
            // because the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName);
            Console.WriteLine("Sucessful call.");
        }
        catch(AppDomainUnloadedException)
        {
            Console.WriteLine("Failed call; this is expected.");
        }
    }
}

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain 
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
    //  Call this method via a proxy.
    public void SomeMethod(string callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", 
            ads.ApplicationName, 
            ads.ApplicationBase, 
            ads.ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name 
        // of the second domain.
        // NOTE: The application's thread has transitioned between 
        // AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.", 
            callingDomainName, 
            Thread.GetDomain().FriendlyName
        );
    }
}

/* This code produces output similar to the following: 

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */

.NET Framework
Disponible depuis 1.1
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: