我正在做一些通用的对象比较,使用反射和递归。递归方法在每个步骤中都需要一些类型信息,这是由调用者提供的。有一次,我知道下一个属性是Dictionary<T,U>
,我想发送正确的类型。我想出了这个:为什么我的反射字典类型没有实现IDictionary?
Type dictionaryType = typeof (IDictionary<,>).MakeGenericType(new [] {keyType.PropertyType, typeof(ValueType)});
凡keyType
和ValueType
是种发现较早。但是,根据dictionaryType.GetInterfaces()
,此类型不实现IDictionary<KeyType, ValueType>
接口。为什么?它看起来喜欢它应该...
请的工作,到一个小完整的代码片段。 –
你正在做一个'typeof(IDictionary)'对象。这是一个接口类型。它不能实现自己。 –
BoltClock
@亨克:真的,为什么?这个问题更多的是理论上的问题,我想说的是,可运行的并不会提供太多的信息 – carlpett