如果这是一个重复的问题,我很抱歉。我搜索了一下,但没有找到答案。 如何使用反射在多级别上获取类的属性值?
我有一个字符串列表,其中包含一些字符串值,例如:
ClassNames = {"FirstName", "LastName", "Location.City", "Location.State", "Location.Country", "PhoneNo"}
我有两个类
public class Details
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Location Location { get; set; }
public string PhoneNo { get; set; }
}
public class Location
{
public long City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
我利用反射机制成功获取了firstname、lastname和phone的值。但是如何获取location类中的值呢?出现了错误。我将列表更改为只包含Location / City。可能是我遗漏了某些内容。我不希望使用多个循环,因为级别可能会一直钻下去(最多4级)。
foreach (string fieldname in ClassNames)
{
string fieldvalue = RestultDTO[indexValue]GetType().GetProperty(fieldname) ;
}