問題タブ [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 投票する
0 に答える
87 参照

c# - DynamicObject's property needs to be casted before invoking extension methods?

I created a class that extends DynamicObject:

I can add property to the instance of my class. For example:

I can also use methods and properties of string:

However, using extension method,

gives me an error 'string' does not contain a definition for 'IsEmpty'.

The error can only be suppressed when I cast the property to string:

I wonder why can I use string methods without casting while I cannot use extension methods without casting.

Any idea why can't I use extension methods without casting?

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

lua - ランダムに作成されたオブジェクト名にアクセスする方法

以下に記述されたコードを使用して、ランダムなオブジェクトが画面上に作成されます。これらのランダムなオブジェクトに名前を付けて、ユーザーが特定のオブジェクトをタップしたときにアクセスしたいのですが、ユーザーが特定のオブジェクトをタップしたときに実際にゲームを作成し、その特定のオブジェクトだけを撃つ必要があります。何か提案をお願いします...

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

c# - 別のクラスを拡張するクラスに DynamicObject 機能を実装する

ダイナミクスをサポートして拡張する必要がある C# クラスの多重継承をシミュレートする最善の方法についてアドバイスが必要です。

クラス MainClass は DLR に依存する必要はありません。そのすべてのプロパティとメソッドは静的にコンパイルされます。オーバーロードされた演算子がたくさんあります。これは一種の DSL です。

ExtendedClass は基本的に、C# ダイナミクスをサポートする MainClass です。たとえば、すべての MainClass 機能に加えて、DynamicObject の TryGetMember/TryInvokeMember をオーバーロードする必要があるため、クライアントは実行時に評価される拡張プロパティでそれを使用できます。

ここで、DynamicObject がインターフェイスではなくクラスであるという問題が発生します。したがって、ExtendedClass は DynamicObject からのみ派生する必要があります。つまり、基本的にすべての MainClass 機能を複製する必要があります。

これは珍しい状況ではないと思います (2 つの類似したクラス、1 つは何らかのシステム クラスから派生する必要があるため、別のクラスから継承して機能を再利用することは不可能です)。この状況に対処するための簡単な方法よりもスマートな方法はありますか? MainClass をメンバー フィールドとして ExtendedClass に追加し、そのすべてのメソッド/プロパティを複製して、含まれている MainClass のインスタンスに単純に転送しますか?

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

c# - 動的オブジェクトで Parallel.ForEach メソッドを使用する方法

次のように複数のクライアントを同時に処理するために、以前に Parallel.ForEach 機能を使用しました。

しかし今、Client クラスを作成する代わりに、次のようにクライアント オブジェクトを動的に作成することにしました。

Client クラスを使用せずにオブジェクトを動的に生成するようになったので、Parallel.ForEach 機能を使用して、クラス オブジェクトを使用する前に行っていたように、Dynamic Object 内の複数のクライアントを同時に処理するにはどうすればよいでしょうか?

私が自分自身を明確にしたことを願っています。

また、私のアプローチに何か問題があるかどうか教えていただければ幸いです。または、これを行うためのより良い方法を教えてください。

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

c# - 「「System.Dynamic.ExpandoObject」には「PropertyName」の定義が含まれていません

XML ファイルから動的オブジェクトを生成する次のコードがあります。

C#

XML

コードは正常に動作しますが、IntelliTrace で次の例外 (複数回) が常に表示されます。

Exception:Thrown: "'System.Dynamic.ExpandoObject' には 'client' の定義が含まれていません" (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) Microsoft.CSharp.RuntimeBinder.RuntimeBinderException がスローされました: "'System.Dynamic.ExpandoObject' 「クライアント」の定義が含まれていません」

私のコードに何か問題がありますか?

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

c# - C# DynamicObject から継承するクラスの通常のプロパティ (JSON、XML) をシリアル化する方法

DynamicObject から継承するクラスのインスタンスをシリアル化しようとしています。動的プロパティをシリアル化するのに問題はありませんでしたが (簡潔にするためにここでは示していません)、「通常の」プロパティはうまくいかないようです。シリアル化クラスに関係なく、同じ問題が発生します。JavaScriptSerializer、JsonConvert、および XmlSerializer についても同じです。

シリアル化された文字列に MyNormalProperty が表示されるべきではありませんか? トリックはありますか、または DynamicObject からの継承に関する基本的なことを誤解していますか?

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

c# - linqクエリで匿名型の動的オブジェクトのすべてのプロパティを設定する

動的オブジェクト (つまりList<DynamicRow>) を匿名型オブジェクトのリストに変換する必要がありますが、動的オブジェクトのすべてのプロパティを、実行時に linq またはその他の方法を使用して匿名型オブジェクトに作成する必要があります。

これは可能ですか?もしそうなら、どうすればいいですか?

List<String>この動的オブジェクトは、列 ieと行 ieのリストを含むほとんどグリッド クラスList<DynamicRow>です。

列名 ie を使用して、DynamicRow オブジェクト (Order など) に保持されている値にアクセスできるOrder[<columnName>] -> Order["OrderNumber"]ので、Linq を使用して同じことができるようにしたいと考えています。

列のリストをループして、列名に基づいて各プロパティが設定されている行ごとに匿名オブジェクト型を作成する方法はありますか。

以下のコードが機能しないことはわかっていますが、達成しようとしていることが少し明確になるかもしれません。

これを持っている代わりに:

Item、Description、CommentなどのProperty名が事前にわからないので、このようなものが欲しいです。動的オブジェクトの内容を知る唯一の方法は、列名を使用することです。

上記が実行可能であると仮定すると、別の問題は、キー、つまり p.ElementAt ではなく columnName を使用して p のプロパティにアクセスする方法があります。

更新しました

私はおそらくもっとはっきりしているはずです。これをグリッドにバインドしようとしていますが、winform だけでなく、どのプラットフォームでも機能するように、このジェネリックを保持しようとしています。

@jjchiw から提供されたコードを使用すると、これを出力ウィンドウに出力すると次のようになります。

しかし、linq を使用してダミーのプロパティ名をいくつか指定し、次のようなものを使用していくつかの値を割り当てた場合:

出力ウィンドウに次のように出力されます。

動的リストをグリッドにバインドすると、何も表示されませんが、技術的に「認識可能な」オブジェクトのリストが含まれる匿名型リストを使用すると、グリッドはそれに応じてデータを表示します。

とにかく、動的リストを匿名リストのように動作させて、動的リストをグリッドにバインドしても正しい結果が表示されるようにする方法はありますか?

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

c# - WebMatrix DynamicRecord のキャストまたは基になる IDictionary の取得

これは簡単なことかもしれませんが、私は本当に理解していません。

私が理解している限り: dynamicins C# が依存しているほとんどの型IDictionary<string,object>

WebMatrix.Data でスパイクを行い、結果をキャストしたいのですIDictionary<string,object>が、これは機能しません... WebMatrix.Data クエリは、IEnumerable<DynamicRecord>This is what I try to cast... を返します

ここに私の素朴なコードがあります...

それでは、動的オブジェクトをキャストする適切な方法は何ですか?

WebMatrix.DynamicRecord: http://msdn.microsoft.com/de-de/library/webmatrix.data.dynamicrecord(v=vs.111).aspx

Dynamics.DynamicRecord: http://msdn.microsoft.com/de-de/library/system.dynamic.dynamicobject(v=vs.111).aspx