需求:
取得物件模型裡,某一個屬性欄位的值。
ex:我目前有一個模型TestModal(圖一),並new 出了一 個TestModal,分別給A、B屬性自己的值(圖二),假設今天想要只拿到B屬性欄位的值該如何辦到呢?
(圖一)
(圖二)
實作:
(一)寫一個依照屬性名稱取得欄位值的方法:
/// <summary>
/// 依照屬性名稱取得模型欄位值
/// </summary>
/// <typeparam name="T1"></typeparam>
/// <param name="name">欄位名稱</param>
/// <param name="t1"></param>
/// <returns></returns>
public static object GetValueByPropertyName<T1>(this string name, T1 t1)
{
return t1.GetType().GetProperty(name).GetValue(t1);
}
(二)使用GetValueByPropertyName()取得Test裡屬性B的值
static void Main(string[] args)
{
var test = new TestModal()
{
A = "我是A",
B = "我是B"
};
var propertyName = "B";
Console.WriteLine(propertyName.GetValueByPropertyName<TestModal>(test));
}
結果:
留言
張貼留言