用Coding证明Application Domain

来源:互联网 发布:北方汉子性格特点知乎 编辑:程序博客网 时间:2024/05/21 19:31
导读:
  
  Application Domain可以看作是一个Assembly的逻辑容器。在程序执行过程中,如果遇到需要的Type并没有定义在已经加载的Assemblies中, CLR会把相应的Assembly加载的该Application Domain中。每个Application Domain都有一个属于自己的加载器堆(Loader Heap),用于维护从Application Domain创建以后所用到的所有的Type,以及这些Type对应的方法表——维护这样一个Mapping:定义在Type中的所有方法和经过JIT编译后x86代码(只考虑32bit处理器)。 [bitsCN.Com]
  Application Domain之间是相互隔离,互不干扰。在一个Application Domain创建的对象不能被另一个Application Domain直接调用,反映在内存分配上面——就是各个Application Domain使用各个独立的内存地址空间。一个对象根据他所对应的类型(如System.MarshalByRefObject通过传递引用的方式)或者属性(比如对于定义了System. SerializableAttribute的Type采用传递值得方式)以两种不同的方式在Application Domain之间传递——By Reference 和By Value.
  bitsCN#com中国网管联盟
  这些都是地球人都知道的。NET的基本原理,但是相信很多人没有尝试过通过Coding的方式证明这种机制。 [bitsCN.Com]

本文转自
http://www.bitscn.com/dotnet/framework/200709/109654.html
原创粉丝点击