是否可以仅在满足特定条件时在自动映射器中使用自定义值解析器?
在我的例子中,如果 destination 不为空,我只想使用自定义值解析器更新值。
这是我的代码示例。基本上我需要在上面添加条件。可能吗?
Mapper.CreateMap<ResponseXml, MyModel>()
.ForMember(dest => dest.FirstName,
op => op.ResolveUsing<ResponseXmlValueResolver>()
.FromMember(x => x.data.FirstOrDefault(y => y.name == "name")))
最佳答案
我认为 Eris 的解决方案会奏效;这只是语法错误。
Mapper.CreateMap<ResponseXml, MyModel>()
.ForMember(dest => dest.FirstName,
op => {
op.Condition(src => src != null);
op.ResolveUsing<ResponseXmlValueResolver>();
.FromMember(x => x.data.FirstOrDefault(y => y.name == "name"));
});
这是你想要的吗?
如果目标为空,映射将被忽略。
如果目标为空,则将应用映射(已解析客户)。
关于c# - automapper 条件自定义值解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991622/