automapper条件自定义值解析器

时间:2014-11-18 10:09:39

标签: c# automapper

只有在满足某个条件时才可以在automapper中使用自定义值解析器吗?

在我的情况下,如果目的地不为空,我只想用自定义值解析器更新值。

这是我的代码示例。基本上我需要在这个上添加条件。有可能吗?

Mapper.CreateMap<ResponseXml, MyModel>()
    .ForMember(dest => dest.FirstName, 
                 op => op.ResolveUsing<ResponseXmlValueResolver>()
                .FromMember(x => x.data.FirstOrDefault(y => y.name == "name")))

2 个答案:

答案 0 :(得分:2)

我认为Eris&#39;解决方案会有效;这只是语法错误。

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"));
             });

这是你想要的吗?
如果目标为null,则映射将被忽略 如果目标为null,则将应用映射(与客户解决)。

答案 1 :(得分:-1)

这会有用吗? (目前我面前没有窗框)

Mapper.CreateMap<ResponseXml, MyModel>()
    .ForMember(dest => dest.FirstName, 
             op => op.Condition(src => src != null)
                     .ResolveUsing<ResponseXmlValueResolver>()
                     .FromMember(x => x.data.FirstOrDefault(y => y.name == "name")))