我想知道如何獲取C#中的屬性值,但此屬性是另一個類型。C#關於一個類的嵌套屬性的思考
public class Customer
{
public string Name {get; set;}
public string Lastname {get; set;}
public CustomerAddress Address {get; set;}
}
所以我能夠得到的名稱和姓氏的屬性值,但我挺不明白如何讓CustomerAddress.City的價值。
這是我到現在爲止。
public object GetPropertyValue(object obj, string property)
{
if (string.IsNullOrEmpty(property))
return new object { };
PropertyInfo propertyInfo = obj.GetType().GetProperty(property);
return propertyInfo.GetValue(obj, null);
}
然後在LINQ語句中使用這個方法。
var cells = (from m in model
select new
{
i = GetPropertyValue(m, key),
cell = from c in columns
select reflection.GetPropertyValue(m, c)
}).ToArray();
所以我沒有得到CustomerAddress的價值。
任何幫助將深表謝意。
**** ****更新
我這裏怎麼設法做到這一點。
public object GetNestedPropertyValue(object obj, string property)
{
if (string.IsNullOrEmpty(property))
return string.Empty;
var propertyNames = property.Split('.');
foreach (var p in propertyNames)
{
if (obj == null)
return string.Empty;
Type type = obj.GetType();
PropertyInfo info = type.GetProperty(p);
if (info == null)
return string.Empty;
obj = info.GetValue(obj, null);
}
return obj;
}
如何設置一個嵌套屬性的值? (與此相同,但對於info.SetValue ...)? – Denis 2011-08-11 23:12:44