2011-08-23 53 views
0

我想註冊一個屬性的自定義命名約定,我有許多域對象和相關的視圖模型。AutoMapper SourceMemberNameTransformer

該域對象有一個枚舉屬性PublishStatus和視圖模型有一個布爾值屬性Published

如果我創建了一個像How do I get AutoMapper to deal with a custom naming convention?一樣的自定義SourceMemberNameTransformer,我只是返回原始字符串的屬性不匹配PublishStatus

+0

警告:好像屬性「SourceMemberNameTransformer」 Automapper – SteveC

回答

0

如果我正確理解你的問題,你可能想要一個ValueResolver。喜歡的東西:

public class PublishStatusResolver : ValueResolver<PublishStatus, bool> 
{ 
    protected override bool ResolveCore(PublishStatus status) 
    { 
     return status == PublishStatus.Published; 
    } 
} 

然後在映射代碼,你把它想:

.ForMember(dto => dto.Published, 
      opt => opt.ResolveUsing<PublishStatusResolver>() 
        .FromMember(src => src.PublishStatus)) 
+1

的2.1.1版本已經被移除之後在沒有我試圖避免這樣的映射。我試圖註冊一個命名約定,以便AutoMapper自動使用我的ValueResolver,而不必在每個屬性上明確聲明它。 –