問題タブ [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.

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

c# - ExpandoObjects へのメソッドの追加

アップデート

問題はコードではありません。問題は、動的オブジェクトを直接のウィンドウから評価できないように見えることです。


メソッドを ExpandoObject に追加しようとしていますが、それを機能させる方法がわかりません。これが私のコードです:

誰でもこれを行う方法を知っていますか?

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

c# - ExpandoObject にメソッドを追加するときの「キーワード 'this' は、静的プロパティ、静的メソッド、または静的フィールド初期化子では無効です」

(動的に追加された) プロパティを返す動的メソッドを ExpandoObject に追加しようとしていますが、常にエラーが発生します。

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

コンパイラは次のエラーにフラグを立てています: エラー 1

キーワード 'this' は、静的プロパティ、静的メソッド、または静的フィールド初期化子では無効です

D:\rnd\GettingStarted\DynamicDemo\ExpandoFun.cs 20 63 DynamicDemo

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

c# - グリッドビューを ExpandoObject にデータバインドする方法

を使用してASP.NETGridViewをにデータバインドしようとすると、次の例外が発生します。IEnumerable<ExpandoObject>ObjectDataSource

System.Web.HttpException (0x80004005): DataBinding: 'System.Dynamic.ExpandoObject' に 'StoreID' という名前のプロパティが含まれていません。

にデータバインドする方法を知っている人はいますExpandoObjectsか?

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

c# - ExpandoObjectを.NET4でシリアル化できますか?

System.Dynamic.ExpandoObject実行時にプロパティを動的に作成できるように、を使用しようとしています。後で、このオブジェクトのインスタンスを渡す必要があり、使用されるメカニズムにはシリアル化が必要です。

もちろん、動的オブジェクトをシリアル化しようとすると、例外が発生します。

System.Runtime.Serialization.SerializationExceptionは処理されませんでした。

アセンブリ'System.Core、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'に「System.Dynamic.ExpandoObject」と入力してもシリアル化可能としてマークされていません。

ExpandoObjectをシリアル化できますか?シリアル化可能な動的オブジェクトを作成する別のアプローチはありますか?おそらくDynamicObjectラッパーを使用していますか?

エラーを再現するために、非常に単純なWindowsフォームの例を作成しました。

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

c# - プロパティを ExpandoObject に動的に追加する

実行時にプロパティを ExpandoObject に動的に追加したいと考えています。たとえば、文字列プロパティ呼び出し NewProp を追加するには、次のように書きたいと思います

これは簡単に可能ですか?

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

c# - オーバーヘッドが最小の .NET 3.5 の ExpandoObject の代替

最小のオーバーヘッドで .NET 3.5 アプリケーションで ExpandoObject の機能を模倣するにはどうすればよいですか? これまでのところ、私の最善のリードは Lin Fu フレームワーク ( http://www.codeproject.com/KB/cs/LinFuPart2.aspx ) を使用することですが、もっと良いものがあるかもしれないと考えています。

ここで何をしようとしているのかをよりよく理解するために、私の目的は a のパラメーターから型を動的に作成することMethodInfoです。だから、基本的に私はこれを変えたい:

の中へ

実行時に。Linq 式を使用しているため、リフレクションを使用してパラメーターにアクセスできる必要があります。

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

c# - ExpandoObject を MongoDB に永続化する

任意の数のプロパティを持つ ExpandoObject があります。これらのプロパティを MongoDB データベースに BsonDocument として保持したいと考えています。私は次のコードでそうしようとします:

ただし、オブジェクトで拡張メソッド ToBson() を呼び出すと、次の例外が発生します。State が Initial の場合、WriteInt32 を呼び出せません。

私が知っている唯一の WrtieInt32 は、Marshall クラスの静的メソッドです。私はこれに間違って近づいていますか?

0 投票する
12 に答える
49460 参照

c# - asp.net mvcでJsonResultを介して返されたExpandoObjectを平坦化する方法は?

ExpandoObject実行時にサーバー側の動的オブジェクトをコンパイルするのが本当に好きですが、JSON シリアライゼーション中にこれをフラット化するのに苦労しています。まず、オブジェクトをインスタンス化します。

ここまでは順調ですね。私の MVC コントローラーでは、これを JsonResult として送信したいので、次のようにします。

これにより、JSON が以下のようにシリアル化され、ブラウザーによって消費されます。

しかし、私が本当に欲しいのはこれを見ることです:

--dynamicの代わりに使用すればこれを達成できることはわかっていますが、プロパティと値を単一のオブジェクトにシリアル化できます (キーまたは値のビジネスはありません)。ランタイムまでオブジェクトに必要なプロパティであり、私が知る限り、を使用せずにプロパティを動的に追加することはできません。ExpandoObjectJsonResultdynamicExpandoObjectdynamicExpandoObject

JavaScriptで「キー」、「値」のビジネスをふるいにかける必要があるかもしれませんが、クライアントに送信する前にこれを理解したいと思っていました。ご協力いただきありがとうございます!

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

c# - Short way to achieve dynamic objects from LINQ to XML select query?

Is there an initialization syntax to the ExpandoObject that I can use to my advantage in a LINQ to XML query for brevity purposes?

Note: The results of the query are intended to be passed outside the scope of the current assembly so anonymous types are out of the question (see why here).

I'm trying to use brief syntax like the following to create dynamic/expando objects:

More involved solutions to make this code work might be:

  • create concrete class and initialize it instead (but I don't want to create a bunch of those).
  • use anonymous type and copy its members to a dynamic object (somewhat redundant) and return the dynamic objects

Is there an equally short syntax to achieve what I intend to do by the erroneous code in question, or will I have to expand the code base in some manner to get the desired result?