[.NET]使用 .NET Reflector + Reflexil 來調整 .NET 組件的程式

[.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 ,如下圖,

image

 

2.透過 Reflexil 來調整 .NET 組件的程式

用 .NET Reflector 開啟要調整的 .NET 組件,點選要調整的 Method 。

然後在 Menu 上選取 Tools => Reflexil ,就會開啟 Reflexil 區塊,如下,

image

 

如果只是要小調整的話,可以先 Copy 上方 Code 後。

在 Reflexil 區塊中按右鍵,選擇「Replace all with code ...」。

image

 

改好程式後,就可以按左下方的「Compile」Button,來編譯看看是否可以通過。

筆者的狀況大多是 命名空間 找不到,所以可以在有問題的地方加入 完整的名稱,

或是在最上方的「Imports」區塊中加入 using,如下,

image

 

如果 Compile 沒錯誤,就可以按下「Ok」的 Button。

回到 Reflector 點選 .NET 組件,按右鍵,選取 Reflexil v1.9 ,再選 Save as 。

image

 

如果有原的組件有 Sign 的話,則需要原有的 snk 檔來再 Sign 一次哦!

image

 

另外,如果程式中原有的Code有使用到其他組件是屬於 internal 存取層級的 Method or Property ,Reflexil 是不 Support 的哦!

所以就要變成先把那個 internal 改成 public,如下,

image

 

以上方式是針對沒了 Source Code 的組件,還要再對組件調整的「不得以做法」。

所以,請將 Source 進版控系統吧~~~

 

參考資料

redgate .NET Reflector

Reflexil

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^