問題タブ [dynamicmethod]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - De-Serialization を使用して IL メソッドを C# コードに変換する
私はDynamicMethodを初めて使用するため、ダンプの質問かもしれませんので、ご案内ください。
バイナリ ファイルでシリアル化された C# メソッド ストアがあります。格納されたデータはこのようになります。
DynamicILInfo を使用して、この情報から DynamicMethod を生成しています。この IL メソッドのコーデック情報から人間が読める C# コードを取得する方法を知りたいですか?
[編集]
わかりましたので、この情報から DynamicMethod を構築し、 https: //github.com/drewnoakes/il-visualizer に示されている ILVisulizer を使用して IL コードを取得することができました
監視するために IL を送信すると、次のような命令コードが表示されます
プログラミングを使用してこのコードを c# に逆コンパイルする方法を知りたいですか?
c# - Dynamic Method(ref object,object[] arr) の弱いデリゲートを作成する
ソースコード: https://www.pastefile.com/4mzhyg
フォーマットのデリゲートを作成しようとしています:
弱い型関数:
委任作成者:
および IL コード ジェネレーター:
私が使用しているスタックの例は、Set メソッドを使用した Vector3 です。
だから私はやっている:
実行中のデリゲートに到達することはありませんが、Delegate.CreateDelegate を呼び出すと失敗します。
次の行を参照してください: dynMethod.CreateDelegate(typeof(TDelegate));
エラーあり:
InvalidProgramException: Invalid IL code in (wrapper dynamic-method) object:MC<> (object&,object[]): IL_004f: call 0x00000009 実際の IL コードが emit.call(method) でエラーを持っていることを参照していますが、ヘルパー関数を使用すると:
my.dll を生成し、ILSpy で開きます。同じ IL コードからのメソッドが問題なく生成されていることがわかります。
c# - DynamicMethod で DynamicMethod を呼び出す方法
DynamicMethod の作成中に IL を発行して DynamicMethod を呼び出すにはどうすればよいですか?
ILGenerator.Emit(OpCodes.Callvirt, myDynamicMethod);
IL を呼び出すと、MissingMethodException
実行時に結果が生成されます。
この最小限のコードで問題を再現しました。