我有以下代碼。通過反射獲取嵌套的屬性值C#
類:
public class AlloyDock
{
public int Left { get; set; }
public int Right { get; set; }
}
public class Charger
{
public int Left { get; set; }
public int Right { get; set; }
}
public class VehicleControlTest
{
public Charger Charger1 { get; set; }
}
public class BasicControlTest
{
public AlloyDock AlloyDock1 { get; set; }
}
class Appointment
{
public BasicControlTest BasicControlTest1 { get; set; }
public VehicleControlTest VehicleControlTest1 { get; set; }
}
主要功能:
var obj = new Appointment();
obj.BasicControlTest1 = new BasicControlTest();
obj.BasicControlTest1.AlloyDock1 = new AlloyDock();
obj.BasicControlTest1.AlloyDock1.Left = 1;
obj.BasicControlTest1.AlloyDock1.Right = 2;
obj.VehicleControlTest1 = new VehicleControlTest();
obj.VehicleControlTest1.Charger1 = new Charger();
obj.VehicleControlTest1.Charger1.Left = 3;
obj.VehicleControlTest1.Charger1.Right = 4;
var parentProperties = obj.GetType().GetProperties();
foreach (var prop in parentProperties)
{
// Get Main objects inside each test type.
var mainObjectsProperties = prop.PropertyType.GetProperties();
foreach (var property in mainObjectsProperties)
{
var leafProperties = property.PropertyType.GetProperties();
foreach (var leafProperty in leafProperties)
{
Console.WriteLine("{0}={1}", leafProperty.Name, leafProperty.GetValue(obj, null));
}
}
}
我想要得到的屬性名稱和葉節點的值。我能夠獲得名字,但是當我嘗試獲得價值時(分別爲1,2,3,4)。我正在低於錯誤。
對象與目標類型不匹配。
我只是在砸我的頭來解決這個問題。 任何人都可以幫助我。
您正在將父對象實例傳遞給葉屬性信息獲取器。 – Groo
我該如何解決它? –
你爲什麼需要反思? –