我建議不要使用反射。我真的很想知道,是不是因爲Reflection是昂貴的?如果不是,避免使用它的原因是什麼?System.Reflection如何工作訪問類成員數據/信息?
我目前和未來的項目可能需要訪問任何給定的類成員信息。由於我有時需要列出字段&屬性 - 值或聲明名稱。
所以我想知道什麼是:
反射波如何工作的?它如何獲得信息? (一個簡短的解釋就可以)
爲什麼不推薦在應用程序中使用反射?如果您確實需要獲得所需的信息是字段或屬性值OR名稱,您是否可以通過使用System.Reflection來執行而不是?
一些背景。
我當前項目中的用法(例如)是列出一個特定的sql server表 - 列名或SQL表名。
我可以想到其他方式將它作爲List<strings>
返回。
如果我真的知道爲什麼或如何「壞」是,使用reflection
,
..我會再做出決定,如果我真的想避免它,因爲我可能會找到一個替代方法(在這個特定的情況下)。
無論是通過訪問數據庫(不是首選),我需要(說)表名列表或我可以做一次(訪問數據),然後將其存儲在文本文件或XML,如果我真的必須避免反射。
我知道一些更優雅的。雖然這不是問題。 (再次,這只是因爲可能有很多其他使用情況的例子,你可能知道)。
更新
,這一問題被關閉,請幫助重新打開它,並低於
票「重啓」謝謝 。
如何使用反射來獲取SQL列的列表?爲什麼不從'INFORMATION_SCHEMA.COLUMNS'選擇*? – Blorgbeard
@Blorgbeard。請 看到我的帖子的末尾讀它,直到最後,你可以更好地理解爲我所做的quetion本身BOLD – LoneXcoder
@Blorgbeard你怎麼會認爲我已經完成它,讓所有的表列的身份是作爲第一位的一類?還是你提供每次我需要它作爲性能微調的數據庫? – LoneXcoder