[ASP.NET] 藉由Reflection機制取得實體類別屬性值

  • 2593
  • 0
  • 2011-11-11

藉由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>");
}

 

image

 

這樣一來再多的屬性也不怕囉,所有的屬性名稱、型態、值,全部都一目了然

 

 

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18