MPh*_*tic 6 c# generics reflection dynamic
我试图通过检查键和值的类型并使用Reflection创建适当类型的新Dictionary 来将Dictionary < dynamic,dynamic >转换为静态类型.如果我知道键和值类型,我可以执行以下操作:
Type dictType = typeof(Dictionary<,>);
newDict = Activator.CreateInstance(dictType.MakeGenericType(new Type[] { keyType, valueType }));
Run Code Online (Sandbox Code Playgroud)
但是,我可能需要创建一个Dictionary < MyKeyType,dynamic >如果值不是所有相同的类型,我无法弄清楚如何指定动态类型,因为
typeof(dynamic)
Run Code Online (Sandbox Code Playgroud)
是不可行的.
我将如何做到这一点,和/或是否有更简单的方法来完成我想要做的事情?
Dictionary<MyType, Object>
Activator.CreateInstance(typeof (Dictionary<dynamic, dynamic>));
Run Code Online (Sandbox Code Playgroud)
这实际上创建了一个Dictionary<Object, Object>
我可以看到使用动态而不是对象的唯一用途是在代码输入过程中,您可以使用 dic["some"].MyDynProperty...。但是如果您使用 Activator 创建对象,它将返回 Object,因此在代码输入中没有用处。 ..
归档时间: |
|
查看次数: |
1481 次 |
最近记录: |