2009年9月22日 星期二

[C#]動態取得物件Property內容

有時當物件的Property非常多時 , 程式碼就變的重複性太高且程式碼太長
例如:
xxx[1]=obj.data1
xxx[2]=obj.data2
xxx[3]=obj.data3
.........



現在我們只需要知道Property的名稱就能利用PropertyInfo物件輕鬆讀取資料了
for(int i=1;i<100;i++)
{
xxx[i]= getProperty(obj,"data"+i)
}




範例:

using System.Reflection;
public static string getProperty(object obj, string propertyname)
{
Type MyType = obj.GetType();
PropertyInfo Mypropertyinfo = MyType.GetProperty(propertyname);
object value=Mypropertyinfo.GetValue(obj, null);
if (value == null ) return "";
if (value is string) return (string)value;
if (value is int) return ((int)value).ToString();
if (value is DateTime)
{
return ((DateTime)value).ToString("yyyy/MM/dd");
}
return value.ToString();
}

沒有留言:

張貼留言