如何反射取得一个对象中所有字段的值
一个对象,内部可能包含很多字段,其字段如果是值类型ValueType的,可以通过下面的方法取得它的值,如果是String型,也可以。
Type t = obj.GetType();
FieldInfo[] flds = t.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Static
| BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
);
foreach (FieldInfo fld in flds)
{
Type fldType = fld.FieldType;
if (fldType.IsValueType || fldType == typeof(String))
{
retBuiler.Append("\t" + fld.Name + " = " + fld.GetValue(obj));
retBuiler.Append(System.Environment.NewLine);
}
}
问题1:
但如果字段是一个对象(某个类的实例,对象嵌套的情况),如何判断这个字段是一个对象类型并反射取得这个字段对象内各个字段的值?
问题2:
如果字段是一个数组,如何取得这个数组的元素值
请各位高人不吝赐教。