我们目前正在升级系统的其中一个部分。我们希望同时运行系统的两个部分,以便我们可以测试它是否正常工作。
要实现这一点,我们使用Omu.ValueInjecter.Map
方法将旧类型转换为新类型。许多对象都是相同的,它们只是在不同的命名空间中。和Mapper.Map在处理这个问题时遇到了困难。我在git页面上读到你可以使用Mapper.Default
map来改变同名的默认行为,使用下面的代码改变相同的类型。
Mapper.DefaultMap = (src, resType, tag) =>
{
var res = Activator.CreateInstance(resType);
res.InjectFrom(src);
return res;
};
但这不起作用,我找不到更多相关信息,以了解如何修复它。
作为一个临时修复,我们使用了一个json转换器来序列化和反序列化对象,但它很麻烦而且很慢,我们想用Mapper.Map
来整理它。
答案 0 :(得分:0)
那里的文档可能并不完美;
当您使用Mapper.Defaultmap
Mapper.Map
时,会使用Mapper.AddMap
因此,对于类似的类型(只是不同的命名空间),您不需要做任何事情,而您需要调用的类型不同Mapper.AddMap