使用Omu.ValueInjecter映射不同类型的peroperties

时间:2018-01-12 11:17:52

标签: c# valueinjecter

我们目前正在升级系统的其中一个部分。我们希望同时运行系统的两个部分,以便我们可以测试它是否正常工作。

要实现这一点,我们使用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来整理它。

1 个答案:

答案 0 :(得分:0)

那里的文档可能并不完美; 当您使用Mapper.Defaultmap

创建地图的类型致电Mapper.Map时,会使用Mapper.AddMap

因此,对于类似的类型(只是不同的命名空间),您不需要做任何事情,而您需要调用的类型不同Mapper.AddMap