問題タブ [dynamicobject]

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 に答える
2505 参照

c# - C# DynamicObject を任意の型に変換する

Javascript <-> C# ブリッジを作成していて、次の問題に遭遇しました。

クラスJSObjectがあります:

次のような簡単なテストケースがあるとしましょう

今、できるようになりたい

やることは呼び出しを行うobj.messageべきです。TryGetMember()事実上、jsObj は TestClass インスタンスのふりをする必要があります。testComplexObject の呼び出しは単なる例であることに注意してください。後で、任意の引数で任意の関数を呼び出すことをサポートできるようにする必要があります。

これを機能させるためにさまざまな方法を試しましたが、どれも機能しませんでした。だから私はこれを達成するための良い方法を考えています。

TestClass を継承するクラスを実行時に作成することを考えました。この動的クラスには、基本クラスのペンダントをオーバーロードする生成されたメンバーが含まれます。これらの各メソッドは、実際の作業を実行するために JSObject/JSEngineAPI に転送されます。次に、この動的クラスのインスタンスを testComplexObject メソッドに渡すことができます。

ただし、これはかなり複雑に聞こえます。これに対するより簡単な/他のアプローチがあるかどうかを知りたいです。

編集#1:「DynamicObject」の部分を取り除くと、この質問は実行時にタイプTのプロキシを作成する方法に少し似ていると思いますか?

編集 #2: RealProxy と IDynamicMetaObjectProvider も調べましたが、これらが役立つかどうか疑問に思っています。

お時間をいただきありがとうございます - マティアス

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

c# - 動的オブジェクトのメソッド呼び出しのジェネリック型を取得する

.Net で動的オブジェクトを使用し始めていますが、何かを行う方法がわかりません。

DynamicObject から継承するクラスがあり、TryInvokeMember メソッドをオーバーライドします。

例えば

そして、そのメソッド内で、呼び出しのジェネリック引数の型 (存在する場合) を知りたいです。

たとえば、次のコードを呼び出す場合、動的オブジェクトのオーバーライドされたメソッド内で System.Boolean と System.Int32 の値を取得したい

現在、オーバーライドされたメソッド内にブレークポイントを配置すると、呼び出されているメソッドの名前を取得できます (「SomeMethod」と「SomeOtherMethod」、および引数の値ですが、ジェネリック型は取得できません)。

これらの値を取得するにはどうすればよいですか?

ありがとう!

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

c# - DataGridView の DynamicObject データ バインディング、System.Dynamic 名前空間

DynamicObject クラスを継承するオブジェクトのコレクションがいくつかありますが、すべて BindingSource および BindingNavigator でうまく機能しますが、DatagridView に動的プロパティが表示されません。

オブジェクトは DynamicObject を継承し、TrySetMember、TryGetMethod、GetDynamicMemberNames をオーバーライドするだけで十分だと思います。

また、バインディングの更新用に INotifyPropertyChanged インターフェイスも実装します。

私は何かを忘れていますか?またはそれは可能ですか?

私が今持っているものは次のとおりです。

注: _Ctl はすべてのユーザーを提供するオブジェクトです。Users クラスは DynamicObject を継承し、Username、Password、Name などのプロパティが動的に定義されています。すべて正常に機能していますが、データグリッドには動的プロパティが表示されません。

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

.net - 別のクラスでプライベート関数/プロパティを公開するためのオープンソースの動的.NETクラスを作成した人はいますか?

もしそうなら、私はそれを非常に使いたいと思います。誰かがポインタを持っていますか?

私の目標は、テストソリューションで_accessorプロジェクトの必要性をなくすことです。動的クラスを作成した場合、それに適用されている関数を記録し、リフレクションを使用してこれらの関数を別のオブジェクトで再生できるはずだと考えました。そして、リフレクションを使用すると、プライベート関数を呼び出すことができます。(C++の#defineprivate publicのC#バリアントが必要です。)

自分でできると思いますが、コードを再利用できるのならなぜそうするのでしょうか。

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

c# - DynamicObjectのTryInvokeMember()をオーバーライドする場合、呼び出す正しいオーバーロードを選択するにはどうすればよいですか?

次のメソッドをオーバーライドするときに、正しいメソッドのオーバーロードを選択するアルゴリズムをどのように実装しますDynamicObjectか?

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

c# - インターフェイスをサポートする DynamicObject を作成する方法はありますか?

DynamicObject から派生し、インターフェイス (ICanDoManyThings) をサポートするクラスを、インターフェイスに各メソッドを実装することなく定義できますか?

動的プロキシ オブジェクトを作成しようとしていますが、このクラスでのメソッド呼び出しを MyProxyClass.TryInvokeMember の実装によって処理する必要があります。これは、それらをラップされたオブジェクトに渡す場合と渡さない場合があります。

これは可能ですか?

ありがとう

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

c# - XML-RPC.NETおよびC#動的タイプ

Cook Computingブログには、.NET4のダイナミクスを使用して動的RPC呼び出しを作成する方法について説明した投稿があります。(投稿:C#動的タイプのメンバー呼び出しの代替構文

投稿は次の例を示しています。

私が理解していない部分は、「実際にここでXML-RPCエンドポイントを呼び出す」というコメントです。

invokeメソッドでXML-RPC.NETライブラリを使用する方法はありますか、それともHttpWebRequest呼び出しを行う必要がありますか?

ありがとう

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

c# - DynamicObject メンバー アクセスの予期されるタイプの決定

動的メンバー アクセスが期待する型を特定することはできますか? 私はもう試した

そして、TryGetMemberインターセプトGetMemberBinder.ReturnTypeにはどちらの方法でもオブジェクトがあります。また、変換を行うために呼び出される可能性があるかどうか疑問に思って実装TryConvertしましたが、ヒットすることはありません。

適切な変換を行うことができるように、呼び出し元が必要とする Type を特定できる、他に欠落しているオーバーライドはありますか?