这是代码,
Type tbn = Type.GetType(dii.DictionaryName);
DictionaryXmlInfo4BaseDictionary<tbn>.AddDictionaryXmlInfo((message));//error
答案 0 :(得分:5)
你不能使用那样的泛型。泛型用于编译时已知的类型。
您可以使用反射执行此操作 - 获取通用DictionaryXmlInfo4BaseDictionary
类型定义,使用Type.MakeGenericType
创建封闭类型,然后再次调用AddDictionaryXmlInfo
反思...但它相对痛苦。
答案 1 :(得分:1)
您不能将泛型用于仅在运行时已知的类型。 DictionaryXmlInfo4BaseDictionary<T>
类型是通用的,如果要使用它,则需要在编译时知道T
参数。
答案 2 :(得分:0)
您不能将类型的实例用作通用参数。
泛型参数应该是基本实例中的任何一个,DictionaryXmlInfo4BaseDictionary<object>
在最通用的情况下,但你可能想要在类层次结构之下的东西。
答案 3 :(得分:0)
你不能以这种方式使用Type
,重构DictionaryXmlInfo4BaseDictionary
所以它需要一个Type参数作为方法的一部分,例如。
DictionaryXmlInfo4BaseDictionary.AddDictionaryXmlInfo(tbn, message);