members.GetType().GetFields(BindingFlags.Static | BindingFlags.NonPublic);
得到FieldInfo数组,要获取到值,就对某一个FieldInfo: f.GetValue(members);
members.GetType().GetMembers(BindingFlags.Static | BindingFlags.Public);
{System.Reflection.MemberInfo[18]}
[0]: {SAK.ORM.Fields.Field Title}
[1]: {SAK.ORM.Fields.Field ArticleID}
[2]: {SAK.ORM.Fields.Field Content}
[3]: {SAK.ORM.Fields.Field Description}
[4]: {SAK.ORM.Fields.Field ImageUrl}
到是能获取到,但是是获取到的成员 都是Field类型字段,
而我已经创建了"T._"的实例, 怎么能获取到这些实例字段?
这个是members下面的,已经被实例化了的
@天空海阔: 你获取到了这么多字段是一个FieldInfo[]数组,每个成员是一个FieldInfo。用它的GetValue方法,刚才我已经讲过了。代码:
var fieldInfos = members.GetType().GetMembers(BindingFlags.Static | BindingFlags.Public);
foreach(var field in fieldInfos)
{
object value = field.GetValue(instance); //instance就是你创建的那个实例
}
谢谢,自己解决啦