[英]C# GetFields() extracting data from nested class
我想從某個對象獲取字段的信息,但會陷入從嵌套類中獲取數據的麻煩。 遞歸調用中的GetFields()
返回FieldInfo[0]
。
這里的代碼示例。
public class Test1
{
public string Name;
public int Id;
public object Value;
public Test2 Test;
}
public class Test2
{
public float Value;
public bool IsEnable;
}
class Program
{
static void Main()
{
var test1 = new Test1
{
Name = "Test 1",
Id = 1,
Value = false,
Test = new Test2
{
Value = 123,
IsEnable = true,
},
};
GetTypeFields(test1);
Console.ReadLine();
}
public static void GetTypeFields(object data)
{
var fields = data.GetType().GetFields();
foreach (var fi in fields)
{
var type = fi.FieldType;
if (type.IsValueType || type == typeof(string) || type == typeof(object))
{
Console.WriteLine(fi.FieldType + " : " + fi.Name + " = " + fi.GetValue(data));
}
if (type.IsClass && type != typeof (string) && type != typeof(object))
{
GetTypeFields(fi);
}
}
}
}
有人可以幫忙嗎?
你很親密 在第二個調用中,您需要調用GetTypeFields(fi.GetValue(data))
。 當前,您正在向第二個調用提供FieldInfo
對象,而不是實際的類對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.