http://www.cnblogs.com/yaozhenfa/p/CSharp_Reflection_1.html
1、获取全部公共成员(包括基类):
Type t = typeof(RefClass);
MemberInfo[] minfos = t.GetMembers();
2、获取全部成员(外加私有,受保护)
MemberInfo[] minfos = t.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
3、仅获取当前类成员:
MemberInfo[] minfos = t.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
4、获取静态成员:
MemberInfo[] minfos = t.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.Static);
5、获取字段成员:
FieldInfo[] finfos = t.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
6、获取和设置字段成员的值(可以是私有,受保护):
RefClass rc = new RefClass();
finfo.GetValue(rc);
finfo.SetValue(rc, 6);
7、获取方法:
Type t = typeof(RefClass);
MethodInfo[] methodInfos = t.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
8、获取继承的接口:
Type[] type = t.GetInterfaces();
9、获取属性成员:
PropertyInfo[] propertyInfos = t.GetProperties();
10、invoke:
Type t = typeof(RefClass);
Object rc = Activator.CreateInstance(t);
MethodInfo methodInfo = t.GetMethod("Show");
methodInfo.Invoke(rc, new object[] {"1", " 2"});