問題タブ [methodinfo]
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# - MethodInfo署名を取得する
メソッドmyMethodに関連するMethodInfoがあるとします。
メソッドのシグネチャを表す文字列を作成するとします。
MethodInfoパラメーターをループして、パラメータータイプのToStringメソッドを呼び出すことでこれらの結果を得ることができました。
どうすればこれを改善して上記の結果を得ることができますか?
c# - MethodInfo からのデリゲートの作成
からデリゲートを作成しようとして、現在問題が発生していますMethodInfo
。私の全体的な目標は、クラス内のメソッドを調べて、特定の属性でマークされたメソッドのデリゲートを作成することです。使用しようとしていますCreateDelegate
が、次のエラーが表示されます。
署名またはセキュリティ透過性がデリゲート型のものと互換性がないため、ターゲット メソッドにバインドできません。
これが私のコードです
actionscript-3 - AS3: エラー MethodInfo-26 および 25
AS3 でゲームを作成し、ファイルとして 2 つ持っています。1 つは HWMain と HWGame です。開始ボタンをクリックすると、スクリプトは HWMain から HWGame に切り替わりますが、このエラーが発生しました。
これが私のコードです。
私はそれを修正しようとしましたが、エラーは gameState = INIT_STATE にあると思います。私は何をすべきか?
ありがとう。
c# - メソッドが見つかりません
こんにちは私はメソッドを含むオブジェクトを持っています:
私がこの方法を見つけようとしているとき:
methodInfoがnull
どこに問題があるのかわかりません-パラメータを使用してこのメソッドを見つけようとしました:
しかし、それも機能しません、ありがとう!
c# - ExpandoObject からの MethodInfo
以前ここで ExpandoObjects の Reflection を求められたことは知っています。
私の質問は少し異なります。に似た関数から実行する必要がある静的関数と動的関数がありますobject ExecuteFunction(string name, params object[] parameters)
。
リフレクションを介して静的関数を実行します。問題は、MethodInfo 呼び出しを再利用して、ExpandoObject から MethodInfo オブジェクトを取得できるかどうかです。Action
または、2 つの関数 (1つと 1 つ)を実装する必要がありMethodInfo
ますか?
c# - ラムダ式>およびMethodInfo
プロジェクトをVS2010からVS2012に移行しているときに、次の問題が発生しました。プロジェクトはReflectionを頻繁に使用しており、インターフェイスからMethodInfoを取得するために、次のコードが配置されました。
これはVS2010でコンパイルすると正常に機能しましたが、コードが.Net 4.0を目指してVS2012でコンパイルされた場合、methodCallExpression.Arguments.Count()は2でした。
逆コンパイルした後、コンパイラが同じ式に対して異なるコードを生成していることに気付きました。
これは設計上の問題です。これは、methodCallExpression.Arguments[2]の番号2のような「マジックナンバー」を設計が中継してはならないためです。私は以下を使用してこれの解決策を見つけようとしました:
ただし、outermostExpressionはnullです。
最後に、次のように式を変更して動作させました。
理想的ではありませんが、VS2010とVS2012の両方で機能します。
次のような式からMethodInfoを見つける方法はありますか?
c# - リフレクションによってジェネリック パラメーターの型を取得する方法
リフレクションによってジェネリック パラメーターのジェネリック型を取得する必要があります。しかし、型 { Name="T" ; ではなく、実際の型です。FullName=null }
しかし、リフレクションを使用しているため、typeof(T) は使用できません。
(リフレクションを使用して) ジェネリック引数の型を取得する方法はありますか。
他のテーマでは、typeof(T) ex によって呼び出されるメソッドを呼び出す方法を知りたい:
T ジェネリック引数から RuntimTypeHandle を取得するにはどうすればよいですか
invoke - methodInfo.invoke からの戻り値の取得
(int)
から戻り値を取得するにはどうすればよいmethodInfo.invoke
ですか?
私にとって難しいのは、文字列変数を使用してメソッドを呼び出すという事実です。
以下の例を確認してください。
私に何ができる?どんな助けでも大歓迎です。
c# - MethodInfoをプロパティとして永続化する
カスタムBindingSourceを作成していて、MethodInfoをプライベートフィールドとして永続化したいと思います。コード内の問題:
MethodInfoは正常に保存されましたが、使用しようとするとnullになってしまいます。特別なコンストラクターは呼び出されていません(フィールドをオーバーライドします)。OnBindingCompleteは2回呼び出されません。他の何かがそれをnullに設定していることを意味するものは何もないようです。
c# - MethodInfo ポインタを保存し、後でその関数を呼び出す方法は?
C#/CIL/Reflection.Emit 質問:
関数ポインターを持つ型を定義し、その型をインスタンス化し、別の型で静的メソッドを作成しようとしています (「単なる関数」を作成する他の方法がわからないため)、この静的メソッドへのポインターを与えるインスタンスに、後でそのポインタを使用して関数を呼び出します。
私はほとんど成功していません。:-(
タイプは次のとおりです。
ここまでは順調です(と思います)。次に、これらのいずれかを作成し、関数ポインターを割り当てます。
私が知る限り、この部分は問題なく機能しています。私がそれを呼び出そうとすると、問題は別の場所にあります:
これによって作成されたプログラムを実行しようとすると、バイトコードが実行される前にエラーが発生します (または、少なくともそのように表示されます)。
代わりに、EmitCalli() を単純に関数ポインターと引数をポップして数値をプッシュするコードに置き換えると、プログラムの残りの部分は正常に動作します。では、この関数をどのように呼び出す必要がありますか?
本当にありがとう。:-)