ちょっとしたデータサーバ障害により、バックアップをしていなかった、C#で開発していたミニプログラムのソースコードが紛失してしまいました。
そこで Reflector.NETの出番!
exeやdllを読み込ませると、リバースエンジニアリングでC#の形に復元してくれます。
マシン語にコンパイルされるC++などと違い、C#は変数名やオブジェクト構造も維持するMSILにコンパイルされるため、精度は抜群。
コメントが消えたり、プロパティが get_* というメソッドに置換されたり、ラムダ式が展開されていたりするくらいで、ほとんど元のソースコードが復元できます。
むしろ面倒なのが、XAMLの記述やリソースファイルの配置だったり・・・
とにかくReflectorは便利ですね。
その分、読まれても問題ないコードを書くように気をつけないといけませんが・・・