我正在构建一个通用的漂亮打印方法。我要单独处理的特殊类型之一是KeyValuePair<TK,TV>
. 为了将对象减少到已知类型,我想我会将每个对象映射KeyValuePair<TK,TV>
到一个KeyValuePair<object, object>
.
以下代码始终在 的Key
、Value
属性中产生 2 个空值proxy
。
Mapper.CreateMap(o.GetType(), typeof(KeyValuePair<object, object>));
var proxy = Mapper.Map<KeyValuePair<object, object>>(o);
另一方面,这个非通用版本按预期工作:
Mapper.CreateMap(o.GetType(), typeof(DictionaryEntry));
var proxy = Mapper.Map<DictionaryEntry>(o);
为什么?
o
在这个阶段已经被测试为一个KeyValuePair<,>
。
我在 .NET 4.0 上使用 AutoMapper 3.2.1.0。