Ste*_*Lam 5 .net c# list dynamic
我有一个List<dynamic>,我需要将列表的值和类型传递给服务.服务代码是这样的:
Type type = typeof(IList<>);
// Type genericType = how to get type of list. Such as List<**string**>, List<**dynamic**>, List<**CustomClass**>
// Then I convert data value of list to specified type.
IList data = (IList)JsonConvert.DeserializeObject(this._dataSourceValues[i], genericType);
Run Code Online (Sandbox Code Playgroud)
_dataSourceValues:列表中的值
如果List的类型是dynamic(List<dynamic>),我如何将列表的类型转换为特定类型?
如果我理解正确的话,您有一个List<dynamic>并且想要创建一个具有适当的动态对象运行时类型的列表?
像这样的东西会有帮助吗:
private void x(List<dynamic> dynamicList)
{
Type typeInArgument = dynamicList.GetType().GenericTypeArguments[0];
Type newGenericType = typeof(List<>).MakeGenericType(typeInArgument);
IList data = (IList)JsonConvert.DeserializeObject(this._dataSourceValues[i], newGenericType);
}
Run Code Online (Sandbox Code Playgroud)
另一方面,我认为您应该重新考虑代码的设计。我确实没有足够的上下文,但我很好奇为什么你在这里使用动态。基本上List<dynamic>意味着您不关心传入列表的类型是什么。如果您真的关心类型(看起来就像您在进行序列化时所做的那样),也许您不应该使用动态。
| 归档时间: |
|
| 查看次数: |
2646 次 |
| 最近记录: |