1
确定。我试图采取List<Product>
并将其传递到采用通用List<object>
并通过循环创建List<dynamic>
的方法。该方法需要能够处理其他对象的列表(即:Item,Customer,Package等)。动态列表的强类型对象列表
这个想法是这样的,我将有一个动态的通用列表,我可以通过JSON通过线路发送。
我该如何做到这一点?
确定。我试图采取List<Product>
并将其传递到采用通用List<object>
并通过循环创建List<dynamic>
的方法。该方法需要能够处理其他对象的列表(即:Item,Customer,Package等)。动态列表的强类型对象列表
这个想法是这样的,我将有一个动态的通用列表,我可以通过JSON通过线路发送。
我该如何做到这一点?
最简单的方法是使用LINQ建立一个新列表。由于您使用的是.NET 4,你有协提供给你,所以你可以使用:
List<object> foo = products.ToList<object>();
甚至只是:
List<object> foo = new List<object>(products);
您不能通过现有列表,因为List<Product>
只是不是 a List<object>
。
当然,如果您可以更改您的方法来接受IEnumerable<object>
而不是,由于协方差,这将工作正常。如果您仅尝试从参数集合中读取读取,则这可能是可行的。
请注意,您不清楚为什么您需要使用反射来创建List<dynamic>
- 您的方法实际上在做什么?为什么你就不能使用:
List<dynamic> foo = new List<dynamic>(products);
如果提问者使用.NET 4.5,还有另一种** **协变接口,['IReadOnlyList'](http://msdn.microsoft.com/en -us/library/hh192385.aspx)以及诸如'List '和'T []'之类的东西来实现它,并且由于协方差,'IReadOnlyList '也是'IReadOnlyList