2009-06-25 35 views
5

.NET 3.0(或更早版本)有方法獲取方法的字符串表示嗎?我知道我可以從MethodBody對象中獲得一個IL字節數組,但是我有興趣獲得一個字符串,它實際上代表了方法體,因爲它在VS中出現在我眼中。C#方法的字符串表示方法

我在CodeDom命名空間中查看是否有方法在運行時將方法轉換爲CodeMemberMethods,但到目前爲止我已經幹了。

有什麼想法?

回答

12

這是非常複雜的工作。基本上,你會考慮在你的代碼中重寫reflector ......並且不要忘記,並非所有的IL都可以被逆轉。

簡短的回答是「不,內置任何東西」。

甚至表達式樹(來自lambda)不能完全容易地轉回適當的字符串。

2

嘗試使用反射器API(您可能想要檢查在Red Gate接管它之後它是否仍然可用)。

即使你成功了,你仍然會丟失一些原始信息,如本地變量名稱,註釋或某些格式。

基本上所有在編譯過程中丟掉的東西都會丟失。