文章目錄
C# reflection getProperty and getValue
你曾經想要把 object 中所有的 property name 跟內容都取出來確認嗎?如果每次程式跑 debug 都花個五分鐘,或是你跟我一樣急性子的話,你一定不會想在 debug 下一個一個去確認值是否正確;另外的做法是把手動把值顯示出來,但如果這個 object 有 10 個 property 或是你需要確認多個不同的 object ,想必你也不想一個一個慢慢寫,或許可以參考我的笨方法
說明
- 取得目標物件的型別
- 取得目標型別的屬性資訊
- 以目標型別的屬性資訊來取得屬性名稱及屬性值
console
使用 LINQPad 撰寫測試程式
void Main() { userData user = new userData { id = Guid.NewGuid(), name = "yowko", tel = "1234567890" }; Type t = typeof(userData); PropertyInfo[] propInfos = t.GetProperties(BindingFlags.Public|BindingFlags.Instance); foreach (var element in propInfos) { element.Name.Dump(); element.GetValue(user).Dump(); } } public class userData { public Guid id { get; set; } public string name { get; set; } public string tel { get; set; } }
ASP.NET MVC
View
@using System.Reflection @model TestConfiguration.Handler.YowkoConfigSectionHandler @{ ViewBag.Title = "Index"; } <h2>Index</h2> @foreach (var item in Model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)) { <div class="row"> <div class="col-lg-1">@item.Name</div> <div class="col-lg-3">@item.GetValue(Model)</div> </div> }
參考資料
文章作者 Yowko Tsai
上次更新 2021-11-03
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。