Domaines d'application (Guide de programmation C#)

Mise à jour : novembre 2007

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.

static void Main()
{
    // 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 (Guide de programmation C#).

  • 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

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 3.1 Démarrage de l'application

Voir aussi

Concepts

Guide de programmation C#

Référence

Assemblys et le Global Assembly Cache (Guide de programmation C#)