第1章 灵活的编程方法 1
1.1 反射的定义 1
1.2 类型术语 5
1.3 绑定 5
1.3.1 早期(静态)绑定 6
1.3.2 运行时绑定 6
1.3.3 面向对象 7
1.3.4 后期绑定 8
1.4 元数据 11
1.5 访问.NET元数据 12
1.6 .NET中的反射 14
1.6.1 分析对象 14
1.6.2 操纵对象 14
1.6.3 创建对象 15
1.7 小结 15
第2章 程序集、对象和类型 16
2.1 程序集元数据 16
2.2.1 检索类型 23
2.2 类型元数据 23
2.2.2 Type类成员 24
2.3 类成员元数据 27
2.3.1 MemberInfo类 28
2.3.2 Fieldlnfo类 32
2.3.3 PropertyInfo类 35
2.3.4 MethodBas类 37
2.3.5 MethodInfo类 38
2.3.6 ConstructorInfo类 40
2.3.7 EventInfo类 41
2.3.8 ParameterInfo类 43
2.4 小结 46
第3章 使用对象 47
3.1 为什么要用反射调用成员 47
3.2 动态调用成员 48
3.2.1 利用Info类调用类成员 48
3.2.2 InvokeMember()方法调用类成员 53
3.3 反射调用的代价 71
3.4 小结 77
第4章 创建对象 78
4.1 动态程序集加载 78
4.1.1 创建程序集引用 79
4.1.2 动态加载程序集的方法 81
4.1.3 动态实例化类 82
4.2 抽象工厂模式 84
4.3 小结 102
第5章 属性 104
5.1 了解属性 105
5.1.1 使用属性的语法 107
5.1.2 测试标准属性的数据类型 114
5.2 使用预定义.NET属性 119
5.2.1 属性类定义 120
5.2.2 利用属性控制编译器 127
5.2.3 定义并使用程序集属性 132
5.3 定义新的自定义属性 138
5.4 小结 146
第6章 .NET组件模型 148
6.1 .NET组件模型 148
6.1.1 组件、控件和类 149
6.1.2 利用组件模型使用反射 150
6.2 创建新组件 163
6.2.1 定义组件类 165
6.2.2 在容器中存储组件 170
6.2.3 在Visual Studio.NET中使用组件 180
6.2.4 为组件定义属性和事件 183
6.2.5 为组件定义转换器类 190
6.2.6 测试Employee组件类 203
6.3 小结 207
附录A 支持、勘误表和代码下载 208
A.1 如何下载本书的示例代码 208
A.2 勘误表 208
A.3 E-Mail支持 208
A.4 p2p.wrox.com站点 209