C# 反射能否暴露方法程式碼? 問題: 一位開發者希望探索C#反射的功能,卻遇到了一個障礙:無法存取方法內部的實際程式碼。 答案: 簡短回答: 僅使用反射(System.Reflection)無法存取方法程式碼。 詳細解釋: 反射深入元數據,檢查類別類型、方法簽章和其他進階屬性。但是,它不提供對低階資料(例如方法實現的字節碼(IL))的存取。 進階見解: 雖然反射不能方便地進行程式碼檢查,但存在其他途徑: IL 程式碼產生: 使用 System.Reflection.Emit 來編寫 IL 程式碼,而無需直接查看程式碼。 IL 程式碼取得: MethodInfo.GetMethodBody() 可以取得方法的二元 IL 流,但其效用有限。 外部函式庫: 像 Cecil 這樣的第三方工具讓開發者能夠操作方法程式碼(讀取、修改、新增或刪除)。