[.NET]使用 .NET Reflector + Reflexil 來調整 .NET 組件的程式
最近有個 .NET 組件需要調整,而一些組件的 Code 已不可考了。
所以可以透過 redgate .NET Reflector 及安裝 Addin Reflexil 來調整。
1.加入 Addin Reflexil
從 http://reflexil.net/ download reflexil.1.9.bin.zip 解壓縮到 Disk 上。
開啟 .NET Reflector ,從 Tools => Add-Ins 加入 Reflexil.Reflector.dll ,如下圖,
2.透過 Reflexil 來調整 .NET 組件的程式
用 .NET Reflector 開啟要調整的 .NET 組件,點選要調整的 Method 。
然後在 Menu 上選取 Tools => Reflexil ,就會開啟 Reflexil 區塊,如下,
如果只是要小調整的話,可以先 Copy 上方 Code 後。
在 Reflexil 區塊中按右鍵,選擇「Replace all with code ...」。
改好程式後,就可以按左下方的「Compile」Button,來編譯看看是否可以通過。
筆者的狀況大多是 命名空間 找不到,所以可以在有問題的地方加入 完整的名稱,
或是在最上方的「Imports」區塊中加入 using,如下,
如果 Compile 沒錯誤,就可以按下「Ok」的 Button。
回到 Reflector 點選 .NET 組件,按右鍵,選取 Reflexil v1.9 ,再選 Save as 。
如果有原的組件有 Sign 的話,則需要原有的 snk 檔來再 Sign 一次哦!
另外,如果程式中原有的Code有使用到其他組件是屬於 internal 存取層級的 Method or Property ,Reflexil 是不 Support 的哦!
所以就要變成先把那個 internal 改成 public,如下,
以上方式是針對沒了 Source Code 的組件,還要再對組件調整的「不得以做法」。
所以,請將 Source 進版控系統吧~~~
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^