最新の .NET Reflector を使用して、ソース コードを復元することがほとんど不可能な内部レガシー アプリを逆アセンブルしています。厄介なバグの原因を見つけて、パッチを当てる必要があります。Reflector は、プロジェクトの構造を再作成する際にいつものようにうまく機能しましたが、すぐに、一部のget_()
プロパティ呼び出しがそのおよびset_()
メソッド シグネチャに「拡張」されたままになっており、ソース コードをコンパイルできないことがわかりました。
最初は、すべての get/set 呼び出しに問題があると思っていました。しかし、よく見ると、それらのいくつかは問題ありませんが、他のもの (特に OleDbCommand および Forms.Control プロパティ) は および として生成されget_()
ますset_()
。
これらのケースは、Visual Studio の正規表現を使った簡単な「検索/置換」で解決できましたが、扱いにくいものです。Reflectorを正しく動作させる方法はありますか?
EDIT 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 - アセンブリはリリース モードでビルドされました。