.NET 中的反射与自定义属性深入解析
1. 反射类型层次结构
在获取到 Type
实例后,我们可以遍历应用程序的层次结构。通过代表成员、模块、程序集、命名空间、 AppDomain
和嵌套类型的类型来访问元数据。还能检查元数据和自定义属性,创建类型的新实例以及调用成员。
以下是一个使用反射显示三种不同类型成员的示例代码:
using System;
using System.Reflection;
class Test {
static void Main() {
object o = new Object();
DumpTypeInfo(o.GetType());
DumpTypeInfo(typeof(int));
DumpTypeInfo(Type.GetType("System.String"));
}
static void DumpTypeInfo(Type t) {
Console.WriteLine("Type: {0}", t);
// 检索类型中的成员列表
MemberInfo[] miarr = t.GetMembers();
// 打印每个成员的详细信息
foreach (MemberInfo mi in miarr)
Console.WriteLine(" {0}={1}", mi.MemberType, mi);
}
}
这个示例展示了如何使用反射来获取和显示不同类型的成员信息。