看到一段某公司對外服務的系統的程式碼,這段程式碼寫好不到一年,而這段程式碼在做一件事情,把從資料庫撈到的資料轉成物件集合,做法就是用 ADO.NET 產生 SqlDataReader,再將 SqlDataReader 丟到一個靜態方法,在靜態方法裡面逐筆讀取資料,接著透過 Reflection 動態地產生物件集合,但是物件的 Property Name 就遷就 ColumnName,一整個怪啊!
如果我們要練習 Reflection 的用法,這是個非常好的練習,但是要用在 Production 上我們還有 Dapper 可以選擇,搭配我接下來要介紹的三種自定義欄位對應方式,我相信怎樣都比自己寫 Reflection 來得好。