C#基础知识梳理系列十五:反射.docVIP

  • 13
  • 0
  • 约1.37万字
  • 约 12页
  • 2015-09-13 发布于重庆
  • 举报
C#基础知识梳理系列十五:反射,c语言,cf,c站,c语言入门,c罗,c语言编程软件,c

摘 要 反射,一个很有用且有意思的特性。当动态创建某个类型的实例或是调用方法或是访问对象成员时通常会用到它,它是基于程序集及元数据而工作的,所以这一章我们来讨论一下程序集、反射如何工作、如何动态创建类型及对象等相关知识,甚至可以动态创建程序集。 第一节 应用程序域与程序集 通过本系列的前面章节,我们已经知道,Windows为每个进程分配独立的内存空间地址,各个进程之间不能直接相互访问。Windows对.NET的支持是以宿主和COM的形式实现的,基于.NET平台语言实现的代码文件使用Windows PE的文件格式,CLR其实就是COM,相当于一个虚拟机(当然这个虚拟机可以部署到任意支持它的系统环境中),在安装.NET Framework时,CLR的组件与其他COM一样在Windows系统中享有同等的待遇,当CLR启动初始化时会创建一个应用程序域,应用程序域是一组程序集的逻辑容器,它会随着进程的终止而被卸载销毁,CLR把程序代码所需要的程序集加载到当前(或指定的)应用程序域内。CLR可以以其初始化时创建的应用程序域为基础再创建其他的新应用程序域,两个应用程序域中的代码不能直接访问,当然可以通过“中介”进行数据传送。新的程序域创建完后CLR完全可以卸载它,以同步方式调用AppDomain.Unload方法即可,调用此方法后,CLR会挂起当前进程中的所有线程,接着查找并中止运行在即将卸载的

文档评论(0)

1亿VIP精品文档

相关文档