問題タブ [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.

0 投票する
1 に答える
640 参照

c# - ILGenerator: アンマネージ ポインターの使用方法 (VerificationException が発生します)

ユーザーがノードベースの合成、オシレーター、フィルターなどの作成を行って独自のサウンドを作成できるサウンド合成プログラムを作成しています。

プログラムはノードを中間言語にコンパイルし、その後 ILGenerator と DynamicMethod を介して MSIL に変換します。

すべての操作とデータが格納されている配列で動作しますが、後でビットレベルの操作を実行できるようにポインターを使用できれば、より高速になります。

PD: スピードは非常に重要です。

DynamicMethod コンストラクターのオーバーライドの 1 つにメソッド属性があり、その 1 つが UnsafeExport であることに気付きましたが、有効な組み合わせは Public+Static のみであるため、使用できません。

これは、VerificationException をスローする私がやろうとしていることです: (ポインターに値を割り当てるためだけに)

0 投票する
1 に答える
1682 参照

c# - 動的アセンブリとメソッド

私は何年もの間.NETとC#をプログラムしてきましたがDynamicMethod、リフレクションのコンテキスト内で動的アセンブリの概念とともにこのタイプに遭遇したのはごく最近のことです。それらは常にIL(ランタイムコード)生成内で使用されるようです。

残念ながら、MSDNは、動的アセンブリ/メソッドの実際が何であるか、またそれらを何に使用するかを定義するという非常に貧弱な仕事をしています。誰かがここで私を教えてくれませんか?DLRとは何か関係がありますか?実行時のアセンブリおよびメソッドの静的(通常)生成とはどのように異なりますか?それらをいつどのように使用するかについて何を知っておくべきですか?

0 投票する
2 に答える
21066 参照

groovy - Groovy でメソッドを動的に呼び出すにはどうすればよいですか?

実行時にクラスのメソッド名のリストを取得しており、これらのメソッドを呼び出したいと考えています。ここから最初の部分を完了する方法を理解しています: http://docs.codehaus.org/display/GROOVY/JN3535-Reflection

情報が見つからないように見えるのは、メソッドの名前を取得した後でメソッドを呼び出す方法です。

私が欲しいのはここに来ることです:

正しい構文が見つからないようです。上記は、GroovyObject クラスのデフォルトの invokeMethod をオーバーロードしたことを前提としているようですが、これは私が望む方向ではありません。

0 投票する
1 に答える
664 参照

c# - 本体のソース コードが変数に格納されているコントロールに、実行時にイベント ハンドラーを追加します。

少し助けが必要です!

実行時にカスタム コントロールを作成し、情報を含む xml を逆シリアル化しています。カスタム コントロールには 2 つのプロパティがあります。1 つはイベントの名前、もう 1 つはイベントが発生したときに実行するコード (つまり、メソッド本体) です。

2 つの変数の値を抽出します。私が必要とするのは、変数に格納されたコードを実行するイベントのために、実行時にコントロールに追加してハンドラを追加することです。

助言がありますか?よろしくお願いします。

0 投票する
1 に答える
74 参照

c# - Reflection.Emitで動的に生成されたメソッドに説明を追加する

Reflection.Emitを使用して、いくつかのタイプとメソッドを動的に生成しました。すべて正常に機能しますが、他の人がより簡単に使用できるように、メソッドにいくつかの説明情報を含めたいと思います。通常、これをメソッドの上に含めることでこれを行います。

この情報をReflection.Emitに含めることは可能ですか?その場合、どのように行いますか?

0 投票する
3 に答える
531 参照

c# - Ldvirtftnが検証できないのはなぜですか?

匿名でホストされている動的メソッドを使用しているときに、パブリッククラスのパブリック仮想メソッドに対してldvirtftnによって検証できない例外が発生する理由を誰かが説明できますか?次のアセンブリレベル属性も設定しました。

サンプルコードは次のとおりです。

メソッドが所有されている場合、例外はスローされません。

さらに興味深いのは、このようにコードを変更すると、両方のメソッドが問題なくコンパイルおよび実行されることです。

このコードはリフレクティブライブラリで書かれています。

CodeGen.CreateDelegateは、typeパラメーターを使用して、動的メソッドのシグニチャーを判別するだけです。方法は次のとおりです。

0 投票する
1 に答える
980 参照

c# - MethodBuilder /ConstructorBuilderからDynamicMethodを呼び出すことは可能ですか?

ConstructorBuilderから作成されたILGeneratorがあり、それを使用してDynamicMethodを作成して呼び出したいのですが、InvalidOperationExceptionが発生します-別のモジュールからグローバルメソッドまたはフィールドをインポートできません。

0 投票する
1 に答える
346 参照

c# - DynamicMethod の発行されたコードで InvalidProgramException をデバッグする方法

スタックオーバーフローとグーグルをたくさん検索した後、DynamicMethods 用に発行されるコードをデバッグするために提供されるソリューションは時代遅れで非常に扱いにくいようです。

確かに、LCG (軽量コード生成) がリリースされてから 4 年以上の間に、誰かがより良い方法を見つけたに違いありません。

作成してデバッグする動的 IL を検証する最も簡単な方法は何だと思いますか?

peverify や ILDasm などを使用していますか? これらの 2 つのツールでは、アセンブリをディスクに書き込む必要がありますが、DynamicMethod はそれを行う直接的な方法を提供していません。

どうやらWinDbg asoはILを見る方法を提供していますが、それを扱うのは非常に厄介です。

VisualStudio 2010 へのプラグインのようなものが理想的です。

何か案は?

0 投票する
1 に答える
1544 参照

c# - 動的メソッドを介して静的フィールドの値を取得します

私は次のクラスを持っています:

そして、DynamicMethodを介してHELLOの静的フィールドにアクセスしたいと思います。GetValueを使用した標準のリフレクションは機能します。

しかし、私は次のようなものが必要です(OpCodesは同様のメソッドのILDasmから来ています):

アイデアは非常に単純で、動的メソッドは非静的フィールド(ldfldオペコードとこのオブジェクト)で正常に機能しますが、静的フィールドにアクセスしようとすると例外が発生します。

0 投票する
1 に答える
664 参照

c# - DynamicMethod.Invoke または DynamicMethod.CreateDelegate+Invoke - どちらが速いですか?

パフォーマンスが向上するのは次のうちどれですか。

また

通常、数十または数百の異なる DynamicMethod が作成され、各 DynamicMethod が (格納された 'dm' または 'del' のハッシュテーブルを介して) 複数回呼び出されることに注意してください。