很想知道在什么情况下使用应用程序域,现在只对概念有所了解,想知道在什么时候用?请大家指点一下

解决方案 »

  1.   

    一般来说,很少情况使用AppDomain这个概念的。AppDomain之间的交互是一个问题,是一个消耗的事情,所以轻易不要玩这个。
    但是IIS上就不是那么回事了,如果两个人写了两个Web应用
    那么它们之间应该保持一定的隔离,这个时候是应该走两个AppDomain的。
      

  2.   

    隔离, Assembly(大部分部分), 静态的东西, Type , 等都是以 AppDomain 为边界的.
    (assembly 加载到 appdomain 后, 不可卸载, 只能卸载 appdomain)我用过一次, 是动态编译C#代码的, 由于编译过程需要引用一些程序集, 而这些程序集对于主 APPDOMAIN 不是必须的, 因此启动了一个 appdomain 在其中编译, 完成后卸载 appdomain.asp.net 的 iis 扩展, 跟 asp.net 虚拟目录也是运行在不同 appdomain 中的, 做到了隔离, 一个 appdomain 中的某些错误, 不至于将整个 web 服务搞死.
      

  3.   

    appdomain 可以跟进程比较, 若干边界的比较
      

  4.   

    AppDomain是一个应用程序执行的独立环境,为执行托管代码提供隔离、卸载和安全边界. .net应用程序是由许多程序集组成的,net程序是在应用程序域中执行. 
    很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。 
    另外对于同一个进程内不同域之间的通信也相对简单一点。 
    应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库 
      

  5.   

    在WINFORM中用着感觉没什么好处倒是宁愿使用进程通信