元数据就是一大推表,类型定义表,字段定义表,方法定义表,属性定义表,特制属性表(Custom Attribute).
元数据是.Net Framework 的一个重要基石,反射、特制属性,就是基于元数据的, 当然特制属性是反射的一个应用。
反射其他应用?
反射主要用于FCL的类库中来提供用户更多的功能,一般用户开发的应用程序很少有机会用到反射。
1) 使用Visual Studio 的窗口设计器Desginer 去拖拽一个控件时,它有哪些属性,事件,属性(property)成员,哪些需要显示在designer中(依赖Custom Attribute),都要用到反射去分析元数据来获取这些信息。
2) VS的智能感知特性,鼠标放到类型上会有解释。F12查看一个类型会跳到一个由元数据生成的生命文件中。
3) 序列化/反序列化也用到反射,要序列化一个对象,需要知道这个对象的类型所有字段名字,引用对象等等,还是要借助反射去分析元数据。
4) 特制属性是反射的一个应用。