C#编程概念系列(二):应用程序域
2013-05-10 00:55 Commander lang 阅读(599) 评论(0) 编辑 收藏 举报系列文章索引目录:http://www.cnblogs.com/loner/archive/2013/05/09/3068211.html
定义:
应用程序域:(Application Domain,简App Domain)一组程序集的一个逻辑容器,进程中的一个逻辑分区。通常由运行时宿主创建和操作。
AppDomain唯一的作用就是进行隔离。
AppDomain的具体功能:
1、隔离,一个AppDomain中的代码创建的对象不能由另一个AppDomain中的代码直接访问。达到隔离应用程序的效果。当然如果要访问别的AppDomain中的内容,可以使用“按引用封送”或者“按值封送”的语义。 2、AppDomain可以卸载
不能卸载单独的程序集或类型,只能卸载整个应用程序域。从而卸载包含在该AppDomain中的所有程序集。
3、AppDomain可以单独保护
AppDomain在创建后,会应用一个权限集,它决定了向这个AppDomain中运行的程序集授予的最大权限。从而保护宿主加载的代码不被破坏。
4、可以单独实施配置
AppDomain在创建后,会关联一组配置设置。这些设置主要影响CLR在AppDomain中加载程序集的方式。这些设置涉及搜索路径、版本重定向、卷影复制以及加载器优化。
创建和卸载AppDomain:
// 创建一个 Application Domain: System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain"); // 加载并执行一个程序集: newDomain.ExecuteAssembly(@"c:\HelloWorld.exe"); // 卸载应用程序域: System.AppDomain.Unload(newDomain);
从一个AppDomain访问另外一个AppDomain中的对象:
。。。
.
.
.
.
.未完待续...