我正在使用最新的 .NET Reflector 来反汇编一个内部遗留应用程序,其源代码几乎无法恢复。我需要找到一个讨厌的错误的原因,然后可能会修补它。Reflector 像往常一样在重新创建项目结构方面做得很好,但很快我发现一些属性调用被“扩展”到它的get_()
和set_()
方法签名中,导致源代码无法编译。
起初,我认为每个 get/set 调用都有问题。但仔细一看,其中几个是可以的,而其他的(尤其是 OleDbCommand 和 Forms.Control 属性)将生成为get_()
和set_()
。
使用正则表达式的快速 Visual Studio“搜索/替换”解决了这些情况,但这很尴尬。有没有办法让 Reflector 行为正确?
编辑 1 - 下面的示例有问题的代码:
/* Generated by .NET Reflector 6.1.0.11 */
/* The variable selectCommand is a OleDbCommand. */
string parameterName = "@P" + Convert.ToString(num);
selectCommand.set_CommandText(selectCommand.get_CommandText() + " WHERE SIGLA = " + parameterName);
/*
Expected something like this (as ugly as it may seem):
selectCommand.CommandText = selectCommand.CommandText + " WHERE SIGLA = " + parameterName;
*/
编辑 2 - 程序集是在发布模式下构建的。