托管代码是指用.net framework支持的语言写的代码。.net framework为了让这些代码可以执行,提供了数个核心运行服务,因此这些代码必须向CLR提供最基本的信息,这些信息就叫做“元数据”。在程序中表现为在类前或函数前中括号内的数据。可通过继承System.Attribute来创建自己的元数据特性,如:
[AttributeUsage(AttributeTargets.Class)]
public class InspiredByAttribute:System.Attribute
{
public string InspiredB;
}
配件是指一个或多个有main入口的应用程序或库。配件可以引用配件。有私有配件和共享配件。私有配件是在单个应用目录中的,共享配件是存储在全局配件缓存(GAC)中的,可用gacutil -i somedll.dll注册到GAC中成为共享配件。对于共享配件有版本协调,即对共享配件加强版本约束。
版本号由四个数字组成(如:5.5.2.33),如果前两个数字中有任意一个不同的配件,就认为是不兼容的;如果第三个不同,就认为是“可能兼容”;如果第四个不同,就认为是兼容的。这些规则可通过配置文件来指定。
清单是配件是描述,包括资源,类型和引用。
垃圾收集由运行时组件负责管理对象生命及其占用堆内存的系统。.NET垃圾收集器工作机制:周期性地遍历当前被引用的对象列表,凡是没被发现的对象,都准备销毁并收回所占用内存。
序列化指将对象转换为字节流的过程,反序列化是从字节流构建对象的过程。
代码访问安全(Code Access Security):CAS是.NET安全模型的一个部分,决定某段代码是否允许执行及使用什么资源。可通过caspol -lg来查看机器上的CAS代码组。例:caspol -ag 1.3 -site www.pconline.com.cn FullTrust来使用网站完全访问你的机器,不受限制。
反射:即通过编程来访问装配件的元数据,因为装配件是自我描述的,即装配件包含了元数据对自身的描述,因此可以通过反射来访问自身的元数据。.NET本身有一些基类可以实现反射。
Grass Mud Horse