藉由Reflection機制取得實體類別屬性值
對於Reflection基本上只有基本認知,但實務上並沒有太深入的研究或接觸,自然而然也就不
太容易拿來當武器項目,但有些時候真的是很幸運或說是很巧
今天下午小朱大發了幾篇[Data Access] ORM 原理系列的文章,在第一篇的SampleCode中
,剛好提及了Reflection機制,藉由PropertyInfo簡化在Set Value的程式碼
而今天剛好在設計一個新的實體類別,而這個類別屬性又特別多,以往在設計階段為了測試
屬性值在Class被New()出來時,是否有被正確set value,總是很笨的一個個監看或是Respose
出來看,但屬性一多還真的很煩,這時突然浮起Reflection機制,心想既然PropertyInfo可以
簡化Set Value的程式碼,我想如果要Get Value應該也是可行,果然不其然,幾行Code就搞
定了
using System.Reflection;
Bussiness.Attendance.OT ot = new Bussiness.Attendance.OT(new Guid("5DD42D6B-1CB9-49B1-8991-0286F9DCEECB"));
PropertyInfo[] otpros = ot.GetType().GetProperties();
foreach (PropertyInfo proInfo in otpros)
{
Response.Write(proInfo.Name + " / " + proInfo.PropertyType + " / " + proInfo.GetValue(ot, null) + "<br>");
}
這樣一來再多的屬性也不怕囉,所有的屬性名稱、型態、值,全部都一目了然
若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。
By No.18