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