Partager via


Domaines d'application (C# et Visual Basic)

Les domaines d'application offrent une méthode souple et sécurisée pour isoler les applications en cours d'exécution.

Les domaines d'application sont généralement créés et manipulés par les hôtes à l'exécution. Parfois, vous pouvez souhaiter que votre application interagisse par programme avec vos domaines d'application, par exemple, pour décharger un composant sans devoir pour cela arrêter l'exécution de votre application.

Les domaines d'application participent à la sécurité, en séparant les applications les unes des autres et leurs données respectives. Un seul processus peut exécuter plusieurs domaines d'application, avec le même niveau d'isolation qui existerait dans des processus séparés. L'exécution de plusieurs applications dans un seul processus améliore l'évolutivité du serveur.

Dans l'exemple de code suivant, vous créez un domaine d'application puis chargez et exécutez un assembly déjà créé, HelloWorld.exe, qui est stocké sur le lecteur C.

' Create an Application Domain:
Dim newDomain As System.AppDomain = System.AppDomain.CreateDomain("NewApplicationDomain")

' Load and execute an assembly:
newDomain.ExecuteAssembly("c:\HelloWorld.exe")

' Unload the application domain:
System.AppDomain.Unload(newDomain)
// Create an Application Domain:
System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

// Load and execute an assembly:
newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

// Unload the application domain:
System.AppDomain.Unload(newDomain);

Vue d'ensemble des domaines d'application

Les domaines d'application ont les propriétés suivantes :

  • Un assembly doit être chargé dans un domaine d'application avant de pouvoir être exécuté. Pour plus d'informations, consultez Assemblys et le Global Assembly Cache (C# et Visual Basic).

  • Les erreurs dans un domaine d'application ne peuvent pas affecter un code s'exécutant dans un autre domaine d'application.

  • Des applications individuelles peuvent être arrêtées et le code déchargé sans que le processus entier soit arrêté. Vous ne pouvez pas décharger des assemblys individuels ou des types, uniquement des domaines d'application entiers.

Rubriques connexes

Voir aussi

Concepts

Guide de programmation C#

Domaines d'application

Assemblys et le Global Assembly Cache (C# et Visual Basic)

Autres ressources

Guide de programmation Visual Basic

Programmation à l'aide de domaines d'application et d'assemblys