問題タブ [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 に答える
2070 参照

c# - DynamicObject を継承するオブジェクトで GetType().GetProperty() を使用できないのはなぜですか?

リフレクションを使用して動的クラスからフィールドまたはプロパティを取得しようとしていますが、Getfield または GetProperty を使用して動的オブジェクトを呼び出すと、フィールドが見つからず、動的 object.Try* メソッドが入力されません。

これが .net4 で機能しない理由がわかりません。

testdyn 動的テスト クラスについては、以下を参照してください。

私はこのように呼んでいます:

これらの結果を得る:

見ることを期待する

私は何を間違っていますか?

注:「td.fiddle」を呼び出すと機能します...しかし、クラスを作成するための名前がわからないのに、それにアクセスするためには知っているのは奇妙に思えます??

this post から、idynamicmetaobjectprovider を実装しているため、dynamicobject ではおそらくリフレクションがサポートされていないようです。

動的オブジェクトのメンバーを反映​​するにはどうすればよいですか?

問題は、このコードがリフレクションを使用する外部アプリによって使用されていることです。

アイデアがあれば教えてください。

コードは続きます。

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

c# - 期待される戻り値に基づいて動的クラスを異なる方法で処理する方法

DynamicObjectインスタンスが使用されるコンテキストに基づいて (動的クラスで) 異なる動作を取得するには、どのメソッドをオーバーライドする必要がありますか?

これが私が達成しようとしていることの例です:

0 投票する
0 に答える
349 参照

silverlight - Silverlight MVVM は DataGrid を DynamicObject にバインドし、動的メンバーを再評価します

DynamicObjects の ObservableCollection である DataSource を公開する ViewModel があります。バインド時に、DataGrid は最初の DataSource 項目で GetDynamicMemberNames() を呼び出し、自動生成してバインドする必要がある列を取得します。ここまでは順調ですね。

ただし、次に DataSource を変更して、まったく異なるプロパティを持つアイテムを含め、DataSource の PropertyChanged を発生させると、Grid は動的メンバーを再評価しません!

私の質問は、DataGrid で DynamicObject のメンバーを再評価するにはどうすればよいですか? 最初のバインド後に GetDynamicMemberNames を強制的に呼び出すにはどうすればよいですか?

いくつかのコード:

これは、ViewModel コンストラクターで SourceModels コレクションを埋める場合に機能します。

私が探しているのは、SourceModels コレクションを変更した後に GetDynamicMemberNames() を呼び出す方法でグリッドを再バインドする方法です。できればMVVM方式で...

誰でも私を助けることができますか?

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

c++ - ベクトルでの動的オブジェクトの作成

vector<OtherClassName> theVectorだから私はのメンバーとして持っていたいですBaseClass

メモリリークが発生する可能性があると多くの点で疑問に思っています...

これを行うとメモリリークが発生しますか?

私は C++ の初心者で、インターネットから学んでいます。

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

c# - 「'object' には 'property' の定義が含まれておらず、タイプ 'object' の最初の引数を受け入れる拡張メソッド 'property' が見つかりませんでした」

DynamicObject の子孫である単純なクラスを作成しました。

次のようにして子孫オブジェクトを使用します。

_CurrentRow をドット表記で使用しようとすると:

次のエラー メッセージが表示されます。

「' object ' には ' property 'の定義が含まれておらず、型 'object' の最初の引数を受け入れる拡張メソッド ' property ' が見つかりませんでした」

ただし、VB を使用してイミディエイト ウィンドウでプロパティを問題なく解決できます。

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

unit-testing - 動的パラメーターを使用した RhinoMocks の期待値

動的パラメーターを取るメソッドをモックする方法はありますか?

私はこのような期待を設定したい:

エラーが表示されます: 式ツリーに動的式が含まれていない可能性があります。私は確かに次のようなことができます:

しかし、これが私のテストにギャップを残しているように感じます。動的パラメーターを受け入れるメソッドを持つ依存関係をモックする他の方法はありますか?

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

javascript - jQuery で動的オブジェクト名を使用して JSON を再フォーマットする

すべてのキーと値のペアが常に出力されるとは限らないため、単純な JSON のセットを再フォーマットする必要があります。

これが出力される方法の問題は、データが利用できるかどうかに依存し、番号でオブジェクトにアクセスすると、予期しない機能が作成される可能性があることです。2 つ目の問題は、javascript で操作する必要があり、サーバー側で操作できないことです。

各カテゴリがオブジェクト (現在は 3 つですが、最大 5 つになる可能性があります) がオブジェクト内のデータを要約するように、JSON を再フォーマットしたいと考えています。例えば:

どうすればこれをやってのけることができますか?単にループしてオブジェクトに名前を付けるだけでは、どこにも行きません。

0 投票する
5 に答える
60362 参照

.net - 動的オブジェクトまたは匿名オブジェクトを、厳密に型指定された宣言済みオブジェクトに変換する方法はありますか?

厳密に型指定されたオブジェクトの構造と正確に一致する動的オブジェクトまたは匿名オブジェクトがある場合、動的オブジェクトから型指定されたオブジェクトを構築する .NET メソッドはありますか?

LINQdynamicList.Select(dynamic => new Typed { .... }タイプのものを使用できること、または Automapper を使用できることはわかっていますが、このために特別に構築されたものがないかどうか疑問に思っています。

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

c# - IronPython は、TryInvokeMember の代わりに TryGetMember を呼び出します

Dynamic オブジェクトを Ironpython に引き渡そうとしていますが、Ironpython が TryInvokeMember を呼び出していないようです。代わりに、TryGetMember を呼び出し、結果を呼び出すことができないというエラーを返します。

IronPython 2.7 と 2.6.10920 で試してみました

例コード:

動的オブジェクト:

Mathode の呼び出し

これにより、TryGetMember メソッドが呼び出され、Microsoft.Scripting.ArgumentTypeException "str is not callable" がスローされます。

これは、'test'(1) のようなコードを実行するとスローされます。

そのため、Python はこれが関数呼び出しであることを認識せず、代わりにプロパティを呼び出すだけのようです。

しかし、C#から呼び出そうとすると

これはうまくいきます:

これを修正する方法について誰か提案がありますか?

解決策: (編集: calledMethodeName はリストでなければなりません。そうしないと、ネストされたメソッドが機能しません)

ジェフに感謝します。

そのようなダイナミックを設計するとき:

すべてが正常に機能しています。

手がかりは、オブジェクトが呼び出し可能であり、python が TryInvoke (TryInvokeMember ではない) を呼び出すよりも、オブジェクト自体をメンバーとして返すことです。

ただし、TryInvoke が呼び出されるのは、オブジェクトを返した後にオブジェクト自体が呼び出されるためです。そのため、InvokeBinder は呼び出されたメソッドの名前を知りません。だから私はそれを変数に格納します。