トップ回答者
GetMethodBodyを動的メソッドに対して実行したい

質問
-
プログラム内のメソッドに対してGetMethodBody()でMethodBodyを取得してILの情報を取得することは可能です。
var 取得したmethodBody=typeof(クラス名).GetMethod("メソッド名").GetMethodBody();
しかしDynamicMethodにより作った動的メソッドに対しては実行できません。
var d=new DynamicMethod(.......);
var 作ったデリゲート=d.CreateDelegate(typeof(デリゲートクラス))as デリゲートクラス;
var 取得したMethodBody=作ったデリゲート..Method.GetMethodBody();
ここでInvalidOperationException例外が発生します。「オブジェクトの現在の状態に問題があるため、操作は有効ではありません。」
動的メソッドに対してGetMethodBodyを実行する方法はないでしょうか?
回答
-
和和和 さんからの引用 動的メソッドに対してGetMethodBodyを実行する方法はないでしょうか? IL Visualizer を作っていた人たちの間で以前話題になっていて,結果的に動的メソッドの表示に成功していたように記憶しています.
今ざっと検索してたどり着けたのが以下のエントリですが,IL Visualizer 方面の実装を調べてみてはいかがでしょうか?
すべての返信
-
和和和 さんからの引用 動的メソッドに対してGetMethodBodyを実行する方法はないでしょうか? IL Visualizer を作っていた人たちの間で以前話題になっていて,結果的に動的メソッドの表示に成功していたように記憶しています.
今ざっと検索してたどり着けたのが以下のエントリですが,IL Visualizer 方面の実装を調べてみてはいかがでしょうか?