.net AppDomain

CLR COM服务器初始化,会创建一个AppDomain 。 AppDomain是一组程序集的逻辑容器。CLR初始化时创建的第一个AppDomain称为默认AppDomain, 这个默认的AppDomain只有在Windows进程终止时才会被销毁。

除了默认AppDomain, 正在使用非托管COM接口方法或托管类型方法的一个宿主还可指示CLR创建额外的AppDomain。 AppDomain唯一的作用就是进行隔离。下面总结了AppDomain的具体功能。

1,一个AppDomain中的代码创建的对象不能由另一个AppDomain中的代码直接访问。 一个AppDomain中的代码为了访问另一个AppDomain中的对象,只能使用“按引用封送” (marshal-by-reference)或者“按值封送”(marshal-by-value)的语义。这就强加了一个清晰的分割和边界,因为一个AppDomain中的代码没有对另一个AppDomain中的代码所创建的对象的直接引用。这种隔离使AppDomain可以很容易地从一个进程卸载,不会影响其他应用程序中正在运行的代码。

2,AppDomain 可以卸载 CLR不支持AppDomain 中卸载一个程序集的能力,但是,可以告诉CLR卸载一个AppDomain, 从而卸载当前包含在该AppDomain内的所有程序集。

3,AppDomain 可以单独保护 AppDomain在创建以后,会应用一个权限集,它决定了向这个AppDomain中运行的程序集授予的最大权限。正是由于存在这些权限,所以当宿主加载一些代码后,可以保证这些代码不会破坏宿主本身使用的一些重要数据结构。

4,AppDomain 可以单独实施配置 AppDomain在创建以后,会关联一组配置设置。这些设置主要影响CLR在AppDomain中加载程序集的方式。这些设置涉及搜索路径、版本绑定重定向、卷影辅助以及加载器优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值