.NET 3.0(またはそれ以前)でメソッドの文字列表現を取得する方法はありますか?MethodBodyオブジェクトからILバイト配列を取得できることは知っていますが、VSで目に見えるように、メソッド本体を本質的に表す文字列を取得することに興味があります。
実行時にメソッドをCodeMemberMethodsに変換する方法があるかどうかを確認するために、CodeDom名前空間を調べましたが、これまでのところ乾燥しています。
何かご意見は?
.NET 3.0(またはそれ以前)でメソッドの文字列表現を取得する方法はありますか?MethodBodyオブジェクトからILバイト配列を取得できることは知っていますが、VSで目に見えるように、メソッド本体を本質的に表す文字列を取得することに興味があります。
実行時にメソッドをCodeMemberMethodsに変換する方法があるかどうかを確認するために、CodeDom名前空間を調べましたが、これまでのところ乾燥しています。
何かご意見は?
それは非常に複雑な作業です。基本的に、コードでリフレクターを書き直すことを検討しているでしょう...そしてすべてのILを元に戻すことができるわけではないことを忘れないでください。
簡単な答えは「いいえ、何も組み込まれていません」です。
(ラムダからの)式ツリーでさえ、適切な文字列に簡単に完全に戻すことはできません。
リフレクター API をいじってみてください (Red Gate が引き継いだ後も、それがまだ利用可能かどうかを確認することをお勧めします)。
それでも成功したとしても、ローカル変数名、コメント、フォーマットなどの元の情報の一部が失われます。
基本的に、コンパイル中に破棄されるものはすべて永久に失われます。