[.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