1

わかった。私はそれを取得List<Product>して、ジェネリックを取得し、List<object>それらをループしてList<dynamic>ビアリフレクションを作成するメソッドに渡そうとしています。このメソッドは、他のオブジェクト(つまり、Item、Customer、Packageなど)のリストを処理できる必要があります。

その場合のアイデアは、JSONを介してネットワーク経由で送信できる動的の一般的なリストを作成することです。

どうすればこれを実現できますか?

4

1 に答える 1

7

最も簡単な方法は、LINQ を使用して新しいリストを作成することです。.NET 4 を使用している場合、共分散を使用できるので、次を使用できます。

List<object> foo = products.ToList<object>();

または単に:

List<object> foo = new List<object>(products);

a は単純にaではないため、既存のリストを渡すことはできません。List<Product>List<object>

もちろん、IEnumerable<object>代わりに を受け入れるようにメソッドを変更できれば、共分散のために問題なく動作します。パラメーター コレクションからの読み取りのみを行おうとしている場合、これは実現可能かもしれません。

リフレクションを使用して作成する必要がある理由は明確ではありませんList<dynamic>-あなたのメソッドは実際に何をしていますか? なぜ使用できないのですか:

List<dynamic> foo = new List<dynamic>(products);
于 2013-01-04T21:13:43.710 に答える