2009-09-22 4 views
0

J'ai lu quelques articles sur le domaine d'application. La lecture profonde a finalement abouti à la confusion .So je soumets les questions aux experts de sujet.ASP.NET - Objet agile contextuel, Concept de partage de données dans le domaine d'application?

1) Comme CLR prend en charge la création AppDomain au fur et en cas de besoin, il pourrait être une critique besoin d'aller pour une application manuelle Création de domaine?

2) J'ai entendu qu'un domaine d'application ne peut pas partager des données avec un autre domaine d'application (i ne suis pas sûr) .Qu'est-ce que le cas de Windows Communication Foundation?

3) Normalement, les bibliothèques de base (system.dll, mscorlib.dll) sont chargées dans le domaine d'application par défaut. Puis-je les charger dans un domaine d'application personnalisé? si c'est possible, CLR conservera-t-il une copie dans le domaine d'application par défaut?

comme

------------------     ---------------- 
    Default AppDomain     Custom Appdomain 
    -------------------     ---------------- 

    mscorlib.dll       mscorlib.dll 

    System.dll       System.dll 



    .....        ....... 
    -----------------     ----------------- 

4) Quel est l'objet terme contexte agile dans le domaine d'application de référés?

Répondre

3
  1. Créer vos propres domaines d'application est utile parfois quand vous voulez l'isolement (par exemple sandboxing le code 3ème partie), ou la possibilité de recharger du code qui change pendant l'exécution. (Vous ne pouvez pas décharger un ensemble, mais vous pouvez décharger un AppDomain.)

  2. partage de données entre AppDomains implique marshalling. Les données peuvent être soit rassemblées par valeur (c'est-à-dire que tout est copié), soit par référence si votre objet provient de MarshalByRefObject. Dans ce dernier cas, ce que effectivement passe à l'autre AppDomain est une référence à un objet proxy. Tout ce que vous faites sur le proxy est en fait fait à l'objet réel dans l'original AppDomain.

  3. Vous ne savez pas exactement ce que vous voulez dire. Vous pouvez certainement utiliser tous les assemblys système dans d'autres AppDomains.

  4. Je ne suis pas tombé sur ce terme dont je me souviens.

0

AppDomains peuvent transmettre des informations d'un à l'autre en utilisant les services, tels que WCF que vous avez dit en question 2.

Questions connexes