AutoMapper 容许你给属性添加条件,只有在条件成立的状况下该成员才会被映射。javascript
这能够用在尝试将int 映射到 无符号 int的状况下。java
class Foo{ public int baz; } class Bar { public uint baz; }
在如下映射中属性baz只有在源属性baz大于等于零的状况下才会被映射。app
Mapper.Initialize(cfg => { cfg.CreateMap<Foo,Bar>() .ForMember(dest => dest.baz, opt => opt.Condition(src => (src.baz >= 0))); });
相似的还有一个前提条件。不一样之处在于它比映射处理运行的更早,在源值解析以前(想一想MapFrom 或者 ResolveUsing)。前提条件被调用以后,再解析映射的源是哪一个,而后条件被调用本身完成目标值得分配。ui