問題タブ [invokemember]

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 投票する
2 に答える
202 参照

.net - 派生クラスで静的メソッドを動的に呼び出す方法

私の ASP.Net MVC ページでは、列ヘッダーをクリックしてその列で並べ替えることができますが、これには aspx の "マジック ストリング" が含まれており、実行時に問題が発生する可能性があります。sort by に渡された値が有効かどうかを実行時に確認しようとしています。すべてのエンティティが継承する基本クラスがあります。

クラス階層の深さが 1 層を超える入れ子になったプロパティを検証しようとしている場合を除き、これはうまく機能します。例えば:

Patient.FirstName による訪問の並べ替えは正常に機能し、プロパティは再帰的に検出されますが、Patient.PatientType に基づいて訪問を並べ替えようとすると、PatientType プロパティが見つかりません。IsValidSearchProperty は最初に VisitEntity から呼び出され、Patient プロパティを検索し、PatientEntity 型として表示されますが、このメソッドが InvokeMember を使用して自分自身を再帰的に呼び出す場合 (これは、プロパティ Type を使用してそれを呼び出そうとする方法です) 、2 番目の呼び出しでは、GetType(T) はタイプ PersonEntity であり、PatientType を持っていません。これを行う方法に関する提案は、ネストされた呼び出しの Type を正しく解決しますか?

このメソッドは次のように呼び出されます。


アップデート

私がこれをどのように使用しているかについての詳細は次のとおりです。

SortExpression は、「Patient.PatientType True;Patient.FirstName True」のようなものになります。

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

c# - Windows サービスから動的にロードされた DLL のクラスを呼び出せません

これは C# DLL の私のクラスです

実行時に DLL をロードし、Class Type を _type 変数にロードします。しかし、次のように Windows サービスから関数 Execute を呼び出すと、次のようになります。

「呼び出しのターゲットによって例外がスローされました」と表示されます。
ここで何が間違っていましたか?

0 投票する
4 に答える
92258 参照

c# - C# リフレクション - アセンブリを読み込み、存在する場合はメソッドを呼び出します

アセンブリをロードし (その名前は文字列に格納されます)、リフレクションを使用して "CustomType MyMethod(byte[] a, int b)" というメソッドがあるかどうかを確認し、それ以外の場合は呼び出すか、例外をスローします。私はこのようなことをすべきだと思いますが、誰かがそれを行う最善の方法について同じアドバイスを提供していただければ幸いです:

これで十分ですか、それともより良い/より速い/より短い方法がありますか? これらのメソッドが静的ではないことを考えると、コンストラクターはどうですか?単純に無視できますか?

void Methods() を呼び出すとき、単に t.InvokeMember(...) と記述しても問題ありませんか、それとも常に Object obj = t.InvokeMember(...) を実行する必要がありますか?

前もって感謝します。


EDIT 以下の別の回答として、実際の例を提供しました。

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

vb.net - webbrowserでメソッドを送信する

Webページで送信メソッドを呼び出すのに問題があります

これは私のコードです

何もしません。

これがhtmlです

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

reflection - Listを使用してメンバーを呼び出そうとすると、Type.InvokeMemberがMissingMethodExceptionをスローします。>パラメータの1つとして

WCF WebサービスのWSDLを使用してプロキシを動的に作成し、そのメソッドを呼び出そうとしています。実行時にプロキシを構築して呼び出そうとしているWCFサービスのメソッドシグネチャは次のとおりです。

(私はこの目的のためにMSDNのDynamicProxyコードを使用しています。これはここにあります

次のコードスニペットを使用して、実行時にwsdlを使用してプロキシを作成します-

上記の呼び出しのメソッドには、以下にリストされているシグネチャがあります。

上記のメソッドを含むWebサービスのプロキシを動的に作成し、その上でtype.InvokeMemberを実行すると、メソッドが見つからないという例外が発生します。

ただし、すべての文字列を引数として同様のメソッドを呼び出そうとすると、メソッドを正常に呼び出すことができます。たとえば、次のメソッドは正常に呼び出されます

InvokeMemberの使用方法は非常に簡単です

誰かが私が間違っていることを理解するのを手伝ってくれますか?両方の呼び出し(ReceiveMessageとReceiveMessage2)で同じ方法でオブジェクトを渡します。前もって感謝します。これは私を狂わせてきました。

編集:

上記の関数のcommonBindingFlagsは、実際にはこれのラッパーです-

0 投票する
4 に答える
1174 参照

c# - 親メソッドを呼び出す UserControl - エラーが発生するかどうかを確認します

新しいページにリダイレクトする前に、親ページから保存メソッドを呼び出すユーザー コントロールがあります。

親の保存メソッドでエラーまたは例外がスローされた場合、それは無視されているように見え、子は引き続きリダイレクトします。例外をリッスンする方法はありますか、または何らかの方法でリダイレクトを防ぐ方法は、save メソッドが完全に実行されていないことです。

問題のユーザーコントロールコードは次のとおりです。

回答に感謝しますが、これをできるだけモジュール化したいと思っていました...

現在、ユーザー コントロールは約 15 ページで使用されているため、マスター ページにユーザー コントロールを追加しました。これらのページは完全に単独で機能し、ユーザー コントロールは、初めてのユーザーのみが使用する追加レイヤー (ガイド付きツアー) として機能します。ユーザー コントロールは、クエリ文字列の引数によってのみ呼び出され、現在の親ページに関するすべての情報がデータベースの行から読み込まれます。

このコントロールは今後さらに多くのページに追加されるため、これにより柔軟性が向上すると思います。このユーザー コントロール機能を新しいページに追加するには、db に新しい行を追加し、親の保存メソッドが public であることを確認するだけです。

各親ページをほとんどまたはまったく変更せずに、ユーザーコントロールから親 ApplicationException を処理/リッスンする方法はありますか?

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

c# - ボタンのクリック後にページの読み込みを待つ

ボタンをクリックして、ページが読み込まれるのを待ちたいと思います。検索しましたが、正しく機能するソリューションはありません。これはコードの一部です:

クリックした後、アプリケーションがページをロードしてから別のページに移動する必要があります。また、webBrowser1.Navigate(url)クリックと同じ方法である必要があります。すべてがループになっているからです。

助けてください。

編集済み。 *その他のコード*(最初のコードは必要なものの例でした)

クリックすると、次のページをロードする必要があり、次のページでタグを解析する必要がありますが、次のページがロードされる前にページの解析を開始するため、同じページを解析します。

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

c# - WebBrowser コントロールの InvokeMember("クリック")

Web サイトには、選択するオプションが表ベースで表示されます。HTML

文字列「setBank(11,0,1)」のラジオのクリックを呼び出したい。どうすればいいですか?すべてのラジオ名は同じですが、onclick()パラメーターは異なります。

JavaScript では、誰かがこれを行いますが、いくつかのコードはここにありますが、C# でこれを行う方法

私はこれを試してみましたが、うまくいきません:

JavaScript :