問題タブ [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.
c# - C# DynamicObject を任意の型に変換する
Javascript <-> C# ブリッジを作成していて、次の問題に遭遇しました。
クラスJSObjectがあります:
次のような簡単なテストケースがあるとしましょう
今、できるようになりたい
やることは呼び出しを行うobj.message
べきです。TryGetMember()
事実上、jsObj は TestClass インスタンスのふりをする必要があります。testComplexObject の呼び出しは単なる例であることに注意してください。後で、任意の引数で任意の関数を呼び出すことをサポートできるようにする必要があります。
これを機能させるためにさまざまな方法を試しましたが、どれも機能しませんでした。だから私はこれを達成するための良い方法を考えています。
TestClass を継承するクラスを実行時に作成することを考えました。この動的クラスには、基本クラスのペンダントをオーバーロードする生成されたメンバーが含まれます。これらの各メソッドは、実際の作業を実行するために JSObject/JSEngineAPI に転送されます。次に、この動的クラスのインスタンスを testComplexObject メソッドに渡すことができます。
ただし、これはかなり複雑に聞こえます。これに対するより簡単な/他のアプローチがあるかどうかを知りたいです。
編集#1:「DynamicObject」の部分を取り除くと、この質問は実行時にタイプTのプロキシを作成する方法に少し似ていると思いますか?
編集 #2: RealProxy と IDynamicMetaObjectProvider も調べましたが、これらが役立つかどうか疑問に思っています。
お時間をいただきありがとうございます - マティアス
c# - 動的オブジェクトのメソッド呼び出しのジェネリック型を取得する
.Net で動的オブジェクトを使用し始めていますが、何かを行う方法がわかりません。
DynamicObject から継承するクラスがあり、TryInvokeMember メソッドをオーバーライドします。
例えば
そして、そのメソッド内で、呼び出しのジェネリック引数の型 (存在する場合) を知りたいです。
たとえば、次のコードを呼び出す場合、動的オブジェクトのオーバーライドされたメソッド内で System.Boolean と System.Int32 の値を取得したい
現在、オーバーライドされたメソッド内にブレークポイントを配置すると、呼び出されているメソッドの名前を取得できます (「SomeMethod」と「SomeOtherMethod」、および引数の値ですが、ジェネリック型は取得できません)。
これらの値を取得するにはどうすればよいですか?
ありがとう!
c# - DataGridView の DynamicObject データ バインディング、System.Dynamic 名前空間
DynamicObject クラスを継承するオブジェクトのコレクションがいくつかありますが、すべて BindingSource および BindingNavigator でうまく機能しますが、DatagridView に動的プロパティが表示されません。
オブジェクトは DynamicObject を継承し、TrySetMember、TryGetMethod、GetDynamicMemberNames をオーバーライドするだけで十分だと思います。
また、バインディングの更新用に INotifyPropertyChanged インターフェイスも実装します。
私は何かを忘れていますか?またはそれは可能ですか?
私が今持っているものは次のとおりです。
注: _Ctl はすべてのユーザーを提供するオブジェクトです。Users クラスは DynamicObject を継承し、Username、Password、Name などのプロパティが動的に定義されています。すべて正常に機能していますが、データグリッドには動的プロパティが表示されません。
.net - 別のクラスでプライベート関数/プロパティを公開するためのオープンソースの動的.NETクラスを作成した人はいますか?
もしそうなら、私はそれを非常に使いたいと思います。誰かがポインタを持っていますか?
私の目標は、テストソリューションで_accessorプロジェクトの必要性をなくすことです。動的クラスを作成した場合、それに適用されている関数を記録し、リフレクションを使用してこれらの関数を別のオブジェクトで再生できるはずだと考えました。そして、リフレクションを使用すると、プライベート関数を呼び出すことができます。(C++の#defineprivate publicのC#バリアントが必要です。)
自分でできると思いますが、コードを再利用できるのならなぜそうするのでしょうか。
c# - DynamicObjectのTryInvokeMember()をオーバーライドする場合、呼び出す正しいオーバーロードを選択するにはどうすればよいですか?
次のメソッドをオーバーライドするときに、正しいメソッドのオーバーロードを選択するアルゴリズムをどのように実装しますDynamicObject
か?
c# - インターフェイスをサポートする DynamicObject を作成する方法はありますか?
DynamicObject から派生し、インターフェイス (ICanDoManyThings) をサポートするクラスを、インターフェイスに各メソッドを実装することなく定義できますか?
動的プロキシ オブジェクトを作成しようとしていますが、このクラスでのメソッド呼び出しを MyProxyClass.TryInvokeMember の実装によって処理する必要があります。これは、それらをラップされたオブジェクトに渡す場合と渡さない場合があります。
これは可能ですか?
ありがとう
c# - XML-RPC.NETおよびC#動的タイプ
Cook Computingブログには、.NET4のダイナミクスを使用して動的RPC呼び出しを作成する方法について説明した投稿があります。(投稿:C#動的タイプのメンバー呼び出しの代替構文)
投稿は次の例を示しています。
私が理解していない部分は、「実際にここでXML-RPCエンドポイントを呼び出す」というコメントです。
invokeメソッドでXML-RPC.NETライブラリを使用する方法はありますか、それともHttpWebRequest呼び出しを行う必要がありますか?
ありがとう
c# - DynamicObject メンバー アクセスの予期されるタイプの決定
動的メンバー アクセスが期待する型を特定することはできますか? 私はもう試した
そして、TryGetMember
インターセプトGetMemberBinder.ReturnType
にはどちらの方法でもオブジェクトがあります。また、変換を行うために呼び出される可能性があるかどうか疑問に思って実装TryConvert
しましたが、ヒットすることはありません。
適切な変換を行うことができるように、呼び出し元が必要とする Type を特定できる、他に欠落しているオーバーライドはありますか?