問題タブ [expandoobject]
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# - ExpandoObjectを使用してランタイムプロパティを作成することは可能ですか?
通常、次のようなプロパティを作成できます。
私の場合、「Price」や「Value」などのプロパティは実行時までわかりません。どうすれば、そのような動的プロパティを作成できますか。何かのようなもの、
とにかくこの種の振る舞いを達成するために。
c# - ExpandoObjectにパラメータが割り当てられていないメソッドはどのようになっていますか?
次のシグネチャを使用して、メソッド(関数)をExpandoObjectに割り当てようとしています。
私はコンパイルされない以下のコードのようなことをしようとしました:
残念ながら、CreateList署名を変更することはできません。下位互換性が失われるため、書き直すことはできません。デリゲートを使用してこれを回避しようとしましたが、実行時に「非デリゲートタイプを呼び出せません」という例外が発生しました。これは、デリゲートを正しく割り当てていないことを意味していると思います。構文を正しくするためのサポートが必要です(デリゲートの例もOKです)。ありがとう!!
.net - .netexpandoオブジェクトとLINQ。可能かどうか?
製品と呼ばれるexpandoオブジェクトの簡単なリストがあります。
実行時にこれらのオブジェクトにさまざまなフィールドを追加します(色やサイズなど)
動的フィールドに基づいて、このリストにLINQクエリを作成するにはどうすればよいですか?
オブジェクトの古典的なリストを使用して、次のようなLINQクエリを記述できます。
しかし、expandosを使用すると、フィールドの名前が事前にわからないことを知って、これをどのように実現できますか(重量のサイズなど)?
前もって感謝します。
.net - GridViewをDynamicオブジェクトまたはExpandoObjectオブジェクトにバインドする
RobConeryのMassiveORMを使用していますが、結果ExpandoObject
をにバインドできませんでしたGridView
。
impromptuと呼ばれるフレームワークの使用を提案する別のStackoverflowの質問を見つけましたが、それがこれで機能するかどうかはわかりません。知っている場合は、コントロールがバインドできるExpandoObject
ものに実際に変換するためのコードサンプルを提供してください。GridView
最悪のシナリオでは、Massiveが結果ExpandoObject
をPOCOに変換するための追加のメソッド(共有可能)を実装した人はいますか?
どんな助けでも大歓迎です。ありがとう。
.net - ExpandoObject インスタンスの生成されたメンバーに属性を追加することは可能ですか?
ExpandoObject を PropertyGrid の SelectedObject として使用しようとしています。必要なプロパティを ExpandoObject に追加する方法を知っています。
このコードは正常に動作しています。デバッガーは、expando
のプロパティの名前と値を期待どおりに表示します。
MakePropertyObject()
ただし、戻り値をそのプロパティに設定すると、生成されたプロパティはどれも PropertyGrid に表示されませんSelectedObject
。これは、ExpandoObject
のプロパティDisplayNameAttribute
に 、DescriptionAttribute
、またはPropertyGrid
.
私はいくつかの読書とグーグルをしましたがExpandoObject
、カスタム属性で生成されたプロパティを装飾する方法があるかどうかわかりません。これを行う方法、または を に表示するより良い方法を知っている人はExpandoObject
いPropertyGrid
ますか?
解決:
@Stephen Cleary が提供した回答は正しく、役に立ちました (ありがとう、Stephen)。同じ問題を抱えている他の人にとって、実装ICustomTypeDescriptor
は私にとって完璧に機能しました。
補足として、実装するオブジェクトICustomTypeDescriptor
は、別のオブジェクトではなく、それ自体のプロパティとイベント記述子を提供します。最初は、記述子と記述されたものは属性または何かによってリンクされているはずだと思っていました-オブジェクトが独自のタイプを記述しなければならないことは混乱し、冗長に思えましたが、実際にはそれがインターフェイスPropertyGrid
の使用方法です。ICustomTypeDescriptor
c# - ExpandoObject のフィールドを動的に参照するにはどうすればよいですか?
「IDictionary」スタイルのルックアップを使用して、expando のプロパティに動的にアクセスする方法はありますか?
c# - ExpandoObject でコレクション初期化構文を使用するにはどうすればよいですか?
必要なメソッドとメソッドを備えた新しいExpandoObject
実装があることに気付きました。そのため、アイテムを辞書に追加するのと同じ方法で、コレクション初期化子構文を使用して expando オブジェクトにプロパティを追加できるはずです。IDictionary<string,object>
IEnumerable<KeyValuePair<string, object>>
Add(string, object)
しかし、それを行う方法はないようです。エラー:
「System.Dynamic.ExpandoObject」には「追加」の定義が含まれていません
インターフェイスが明示的に実装されているため、これは機能しないと思います。しかし、それを回避する方法はありますか?これはうまくいきます、
しかし、コレクション初期化子の構文ははるかにきれいです。
c# - ExpandoObjectを使用して動的ツリー構造を作成することは可能ですか?
現在、ExpandoObjectを使用して、名と名前を動的に保存しています。
例えば
フィールドをツリー構造に動的に格納して、Nameという親フィールドと、FirstnameとSurnameという2つの子フィールドを作成できるかどうか疑問に思いました。理想的には、これを拡張して、より多くのサブレベルを含めることができます。以下の疑似コードをいくつか実行して、理想的にどのように機能させたいかを示しました。(もちろん、このコードは現在エラーを引き起こします)
asp.net-mvc - asp.net mvc の動的 (ExpandoObject) と静的型 (モデル) の比較
asp.net mvc の動的タイプと静的タイプ
車はバイクよりも優れていますか?それはすべて、使用しているシナリオによって異なります。シナリオを知らなければ、その判断はできません!
特定の問題/状況では、動的型付けは静的型付けよりも優れていますか。
この場合
BaseController の OnException() メソッドが呼び出されたときにビューを表示する必要があります。これは 1 回限りのことであり、死の黄色い画面ではなく、エラー ページを 1 回表示します。
ビューに ErrorMessage と Stacktrace を表示する必要があるとします。これは 1 回限りのことなので、このためのエラー モデルを作成するよりも動的に使用する方がよいとは言えません。
ベストプラクティスは何ですか。返信いただきありがとうございます。
asp.net-mvc-3 - ExpandoObject、匿名型、Razor
タイプ の Razor ビューのビューモデルとして ExpandoObject を使用したいと考えていますViewPage<dynamic>
。これを行うとエラーが発生します
これを機能させるにはどうすればよいですか?