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

c# - コレクション インターフェイスを動的にプロキシする

私は時折、コレクション クラス アダプタを作成する必要がありました。つまりIList<T>、メソッドのプロキシを実装するクラス用のアダプタを作成し、いくつかの追加機能を追加しました。インターフェイスには多数のIListメソッド/プロパティがありますが、ストレート スルー プロキシ メソッドを動的に実装できるかどうか疑問に思っていました。を調べましたDynamicObjectが、DTO クラスをプロキシする単純な例、つまりプロパティだけを持つクラスをプロキシする例しか見つかりませんでした。

プロキシはIList<T>可能ですか?

例えば

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

c# - 動的クラスを作成してプロジェクトに追加する方法

動的クラスを作成してプロジェクトに追加するにはどうすればよいですか (作成元)?

プロジェクトのビルドとリビルドでクラスを作成できますか? プロジェクトでBuild および Rebuildイベントを処理できますか?

ありがとう

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

c# - C# ですぐに使用できる DynamicObject はありますか?

viewbagはすぐに使用できる DynamicObject の 1 つであることは知っていますが、ビューまたはコントローラーを使用していない場合、独自に作成する以外にすぐに使用できるDynamicObjectはありますか?

(ところで、素晴らしい実装のサンプルを見つけましたhttp://www.codeproject.com/KB/cs/dynamicincsharp.aspx )

私は本当に怠け者で、既に作成された DynamicObject を使用したいだけです。

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

asp.net - ASP.NET DataBinding を使用した C# 4.0 動的オブジェクト

動的オブジェクトを使用して動的に作成されたバインドされたオブジェクトのプロパティを ASP.NET GridView に表示しようとしています。私の例では、 DynamicProperties.FullName は動的です。

私のクライアントコードは次のとおりです。

私の BLL コードは次のとおりです (わかりやすくするために簡略化し、ASP.NET バインディングで使用する CustomerCollection 宣言を含めませんでした)。

アプリケーションを実行すると、次の HttpException エラーが発生しました: DataBinding: 'System.Dynamic.ExpandoObject' には 'FullName' という名前のプロパティが含まれていません。

私は何か間違ったことをしていると確信していますが、何が見つかりません。Customer オブジェクトに FullName という名前のプロパティを追加し、getter が DynamicProperties.FullName を返すようにすると、おまじないのように機能します (この場合、ASP.NET Eval はDynamicProperties.FullName ではなくFullNameを参照します)。

アイデア?ありがとう、オミッド。

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

.net - 動的オブジェクトへの階層キーを持つ辞書を逆シリアル化する方法は?

データをディクショナリ形式で受け取っており、それを動的オブジェクトにデシリアライズしたいと考えています。ツイストは、辞書のキーが階層オブジェクトを表現することです。2 番目のひねりは、キーの一部が配列や辞書のプロパティを表現することです。

例えば:

編集:配列の例を追加

ランタイム式エバリュエーターで使用できるオブジェクトを作成する簡単な方法を見つけようとしています。

これは、単純なプロパティで機能する最初の試みですが、配列を処理しようとはしません

これにアプローチするためのより良い方法についてのアイデアはありますか?

ありがとう、

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

c# - dynamicには、プロジェクト参照からのプロパティの定義が含まれていません

次のようなエラーが発生します。

「オブジェクト」には「タイトル」の定義が含まれていません

すべてのコードはgithubにもあります

私はこのようなConsoleApplication1を持っています

およびMovie.cs

同じプロジェクトからは正常に機能しますが、ConsoleApplication1を参照してConsoleApplication2を追加し、まったく同じコードを追加すると、

エラーが発生します:

「オブジェクト」には「タイトル」の定義が含まれていません**

動的オブジェクト内にある場合でも。

  • o.Title'o.Title'は、タイプ'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'dynamic{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}の例外をスローしました。

スクリーンショットは次のとおりです。ここに画像の説明を入力してください

私はこのようなことをしていて、テストプロジェクトから映画関数を呼び出そうとしています。

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

asp.net - System.Dynamic ExpandoControlは可能ですか?

基本的にExpandoObjectであるWebサーバーコントロールを作成する方法を理解しようとしています。

aspxマークアップでプロパティが作成されるときに、コントロールにプロパティを自動的に作成することが望まれます。

例えば:

someProperty属性がコントロールのプロパティとしてまだ存在していない場合。

また、ControlまたはWebControlの機能は厳密には必要ありません。runat = "server"を使用してマークアップで宣言できる必要があります(それ自体がコントロールである必要がある場合がありますが、少なくともそれが私が考えていることです)。

出来ますか?もしそうなら、どうすれば始められますか?

どうもありがとう。

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

c# - DynamicObject と TrySetMember のパフォーマンスと ExpandoObject のパフォーマンス

いくつかのパフォーマンスの問題が発生しているという事実を除けば、アプリケーションで完全に機能する DynamicObject のカスタム実装を使用しています。ダイナミクスではある程度のパフォーマンス オーバーヘッドが予想されますが、ExpandoObject を使用した場合でも、大幅な (桁違いの) パフォーマンスの低下が見られます。

ExpandoObject を使用できない理由は、その動作の一部をオーバーライドしたいからです。以下の非常に単純な例に問題を要約しました。

私のカスタム ExpandoObject コードは次のとおりです (問題を示すのに十分なコードに簡略化されています) --

DynamicObject のディクショナリに値を直接設定すると (iemdictionary["keyname"] = 500)、ExpandoObject と同様のパフォーマンスが得られます。これは、ディクショナリにキーの値を設定するのにミリ秒未満の時間です。TrySetMember オーバーライド (iemkeyname = 500) を使用すると、キー値セットごとにパフォーマンスが 30 ミリ秒から 50 ミリ秒に低下します。多くのキーに書き込む場合、これは明らかに問題になります。同じキーに何度も書き込んでも、TrySetMember を介してアクセスすると同じ時間がかかります。

私の実際のパフォーマンスの問題は、TrySetMember オーバーライドと同様にダイナミクスを使用しているという事実とは関係がないようです。キックのために、私もコメントアウトしました

TrySetMember メソッドで "return true;" だけを残し、パフォーマンスは同じでした。

次のようなものを SuperExpando クラスに追加すると --

TryGetMember を介して変数にアクセスする (読み取る) パフォーマンスの問題は同じですが、ディクショナリを直接読み取ると妥当なパフォーマンスが得られます。

何か案は?

-BJクイン

編集: ここに完全なサンプル コードがあります。フォームを作成し、go_Click イベントを実行するボタンを配置し、プロジェクトをコンソール アプリケーションに設定するだけです。私の場合、ExpandoObject で 50 個のキーすべてを設定するのに約 30 ミリ秒かかりますが、SuperExpando では最小で約 750 ミリ秒かかります。

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

c# - DynamicObject を使用して DependencyProperties をシミュレートする

VS または Blend の機能の 1 つに似たものを作成しようとしています。複数のオブジェクトを選択すると、プロパティ グリッドにはすべてのオブジェクトで共有されるプロパティの値が表示され、オブジェクト間で異なるプロパティには何も表示されません。

動的オブジェクトを使用して、CLR プロパティにこの動作を実装することができました。

  • _knownProperties以前にリクエストされたプロパティの単なるリストです
  • _collectionIEnumerable インスタンスです

これらのプロパティには、WPF バインディングを介してアクセスしています。これを DependencyProperties に実装する方法を考えられる人はいますか? オブジェクトの添付プロパティにバインドしようとするとArgumentNullException、プロパティ システムで取得されます (ここで、null であるオブジェクトは、私が持っているソースによると null になることはできません) 。

  • {Binding Selection.SomeClrProperty,...}正常に動作します (Selectionは動的オブジェクトの 1 つでSomeClrProperty、コレクションのすべての要素のプロパティです。
  • {Binding Selection.(SomeClass.SomeAttachedProperty),...}プロパティ システムでエラーを発生させます

例外:

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

dynamic - Telerik ASP MVC による動的モデル

ExpandoObject、DynamicObject、または Reflection.Emit を使用してグリッドを動的に作成し、同時に CRUD 操作を許可する方法を見つけた人はいますか?

Reflection.Emit を使用してグリッド列を動的に作成し、データを表示することができましたが、行を編集しようとすると、セルの内容が消えてしまいます。

どんな助けでも大歓迎です!