一、由于。net程序代码都是经过对应的编译器编译过的IL代码,而IL代码是依赖于机器上安装的.NETFramWork,所以只要机器上安装了.netFramwork就可以解析经过预编译后产生的Il代码。因为所有的.Net语言都是基于IL的,所有如果实现语言升级等问题,只需修改IL就可以对应语言的变化。
二、开始加载dll或者exe文件时,从Mian方法入口,其中dll文件或者exe文件的头(PE)中包含有其执行所需要的资源的信息,其运行时需要元数据的支持。类中的一个方法如果被多次调用,则只有在第一次执行时,才完整的执行整个资源的加载过程,并且该方法保存在内存中。后面的调用如果检测到该方法的存在就直接调用该方法。没有就从头开始。
元数据是一切操作的基础:找到元数据-->Main方法入口--->在jitComplier(及时编译器)中执行在元数据中找到方法(属性、等)IL代码-->给该IL代码分配内存--->把IL代码编译成本地cpu指令--->并保存到已经分配的内存上--->然后跳转到该内存上执行方法。
三、命名空间介绍。
System:其中包含的类型为引用程序需要的一些基本类型:
System.Coliection:其下的类型主要用于管理集合。如堆栈、队列、散列表等。
Syetm.Diagnostics:其下的类用于处理帮助诊断和调试引用程序。
System。EnterpriseServices:其下的类型用于处理管理事务、队里组件、对象池、JIT激活(.NET中的企业服务中对象的及时激活技术)、安全以及其他一些高级服务程序中托管代码效能。
Sysetm。Globalization:其下类用于支持多国语言。
System.IO:主要用于操作IO流、文件、目录的操作。包括文件移动、目录创建等等于文件所以相关的动作。
Syetem.Management:主要用于处理windows的设备管理。
Sysetm.NET:主要处理网络方向的问题。
Sysetm.Reflection:反射。用于查看原数据,及延迟绑定类型。可以利用反射创建已经封装成dll的类库。来实例化一个类。并且可以调用类的方法、事件等等操作。
Sysetm.Resources:用于操作外部资源。
Sysetm。Runtime.Remoting:用于从远程机器上访问类型。
System.Rimtime.Serialization:用于序列化,把对象(类、数组、Dataset等)序列化为二进制文件、xml文件。反序列化可以实现原类型。
System.Security:用于保护数据和资源,即加密一类处理。
Syetm.Text:与不同的编码(ACSII、Unicode)方式操作文本常用的stringBuliding。
Syetm.Threading:线程处理操作。同时运行几个线程、线程与进程的排它锁、线程同步、线程异步等操作。
Syetme.Xml:主要用于处理xml文件、保存xml文件的创建、保存、节点的增加、删除、等等于xml相关的所以操作。