【发布时间】:2011-12-01 17:57:02
【问题描述】:
我有以下课程:
public class BagA : Dictionary<string, BagB>
{}
public class BagB : Dictionary<string, object>
{}
现在,通过反射,我正在创建一个 BagB 类型的对象 试图添加到我创建的 BagA 类型的对象:
object MyBagA // Created through reflection
object MyBagB // Created through reflection
((Dictionary<string,object>)MyBagA).Add("123",MyBagB); //This doesnt work
给我以下错误:无法将“BagA”类型的对象转换为“System.Collections.Generic.Dictionary`2[System.String,System.Object]”类型。
为什么我不能将 Dictionary<string, BagB> 转换为 Dictionary<string, object>?
根据这种情况,添加我的项目的最佳方式是什么?也许是匿名方法..?
请注意,我宁愿不必修改我的类 BagA 和 BagB...
谢谢!
【问题讨论】:
-
为什么不将 MyBagB 转换为 bag B 而不是转换字典?
标签: c# generics reflection dictionary casting