問題タブ [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.
silverlight - ExpandoObjects のコレクションをデータ グリッドにバインドする方法は?
Excel ファイル (.xls) からテーブルを読み込んで DataGrid に表示しようとしています。テーブルには不明な次元があり、各列には 1 つの不明な型 (string、double、または int) の値があります。
COM 経由でファイルにアクセスし、テーブルを ExpandoObjects の List<> に配置します。DataGrid.ItemSource をリストに設定すると、グリッドは視覚的に空のままになります。列とそのデータ バインディングを明示的に定義すると、アプリケーションが指定されたプロパティを ExpandoObjects で見つけることができないという実行時メッセージが生成されます。
GridView にテーブルを表示するにはどうすればよいですか? 私は Silverlight 5 RC を使用しており、それを行う簡単な方法を望んでいました。少なくとも、これまでに Silverlight 2 および 3 で見たソリューションよりも単純です。
asp.net-mvc-3 - 単純な JsonResult を単体テストする最良の方法は何ですか?
AJAX呼び出しが成功した場合、単純なオブジェクトを返したいSuccess = true
これは正常に動作し、JavaScript が受け取るオブジェクトは次のようになります
ただし、返されるオブジェクトは匿名型であるため、テストで次のことを行うことはできません (次のようなことはできません)。
そのため、テストを希望どおりに機能させる ExpandoObject を返そうとしましたが、AJAX 応答で返された JSON は、この質問で詳しく説明されているように混乱しています。
簡単だと思われることを達成するためのシンプルでクリーンな方法はありますか、それともリンクされた質問のようにカスタムシリアライゼーションを実装する唯一の方法ですか?
c# - IEnumerable で型を見つける方法PetaPoco.Database.Query によって返されます?
ExpandoObject のすべての型を実行時に調べたいと思います。
いくつかの探索的コードを次に示します。
where メソッドは、返された ExpandoObject の null 値を丁寧にステップオーバーします...そもそも返される行に依存しているため、解決策はほとんどありません。
ExpandoObject を構築するときに PetaPoco.Database が学習した内容を照会するより良い方法はありますか?
(フォールバックは、データベースのスキーマ オブジェクトを再度クエリすることです。)
c# - LINQがDataRowsをDataTableに追加するために機能しないのはなぜですか?
ExpandoObjectsを次のようなグリッドに靴べらにするために、次の2つの試みが行われました。
これは機能しません:
しかし、これはします:
なんで?
c# - 動的オブジェクトにプロパティを動的に追加しますか?
私はこれを持っています
だから、私はdがプロパティNameを持つことを知っています。コンパイル時にプロパティの名前がわからない場合、そのプロパティをダイナミックに追加するにはどうすればよいですか。私はこのSOの質問を見つけました
だから、そもそも取得するのが難しいコールバインダーなどのこの複雑な概念があります。これを行うためのより簡単な方法はありますか?
c# - 他のクラスに渡す動的オブジェクトを拡張するには、Microsoft.CSharp.dll が必要ですか?
私は関数を構築しました:
他のクラス/ファイル:
次のエラーが発生します。
動的式のコンパイルに必要な 1 つ以上の型が見つかりません。Microsoft.CSharp.dll および System.Core.dll への参照が不足していますか?
通常の追加参照メニューになかったので、FILE SYSTEMでDLLを見つけた後に参照しました。
何故ですか ?なぜコンパイルしないのですか?なぜ彼らは通常の追加参照メニューにdllを入れなかったのですか? (ファイルシステムでdllを見つける必要がありました...)
c#-4.0 - Json.Net を使用して Guid を ExpandoObject にデシリアライズすると、型が失われ、文字列になります
次のクラスがあるとします。
次のテストは失敗します。
エラーで:
予想: 35ac3081-07cb-41dd-bf40-22e2ff47863c しかし、次のとおりでした: "35ac3081-07cb-41dd-bf40-22e2ff47863c"
これは Json.Net のバグですか、それとも予想される動作ですか? ExpandoObject を使用してテストに合格するにはどうすればよいですか?
ExpandoObject を Entity に置き換えると、問題なく動作します。カスタム JsonConverter を作成する必要がありますか? 私はこれを試みましたが、何らかの理由で、CanConvert と WriteJson は (正常に) 呼び出されましたが、ReadJson は呼び出されませんでした。
c# - 動的/拡張オブジェクトのC#ディープ/ネスト/再帰的マージ
C#で2つの動的オブジェクトを「マージ」する必要があります。私がstackexchangeで見つけたものはすべて、非再帰的なマージのみをカバーしていました。しかし、私はjQueryの$.extend(obj1, obj2)
関数と非常によく似た、再帰的または深いマージを行うものを探しています。
2つのメンバーが衝突すると、次のルールが適用されます。
- タイプが一致しない場合は、例外をスローしてマージを中止する必要があります。例外:obj2値はnullの可能性があります。この場合、obj1の値とタイプが使用されます。
- 些細な型(値型+文字列)の場合、obj1値が常に優先されます
- 自明でないタイプの場合、次のルールが適用されます。
IEnumerable
&IEnumberables<T>
は単にマージされます(多分.Concat()
?)IDictionary
&IDictionary<TKey,TValue>
がマージされます。obj1キーは衝突時に優先されますExpando
&Expando[]
タイプは再帰的にマージする必要がありますが、Expando[]は常に同じタイプの要素のみを持ちます- コレクション内にExpandoオブジェクトがないと想定できます(IEnumerabe&IDictionary)
- 他のすべてのタイプは破棄でき、結果の動的オブジェクトに存在する必要はありません
可能なマージの例を次に示します。
これを行う方法はありますか?
c# - 実行時に自動の Get および Set プロパティを作成できますか?
作りたい
ユーザーの要件に従って実行時に。Expandos または Dynamics を使用して Csharp でこれを行うことは可能ですか。実行時行にプロパティ名を設定するかどうかを尋ねています
public string "user has to give propertyname" {get;set;} .xml r sql から取得する必要がありますが、実行時にプロパティ名を設定したいと考えています。