2 回答

TA貢獻1828條經驗 獲得超13個贊
我強烈推薦使用 Automapper,因為它非常簡單易用。在 Automapper 中,默認情況下會映射具有相同名稱的字段,并且需要最少的配置。您要實現的映射將按如下方式完成:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Message, MessageViewModel>();
});
在集合的情況下,Automapper 可以映射以下內容,前提是已為其數據類型定義了配置:
IEnumerable
收藏
列表
列表
數組
由于在您的情況下已經為列表的數據類型提供了映射,因此不需要進一步配置。
如果您想映射具有不同名稱的字段,或者您想在此過程中進行一些基本級別的驗證,您可以使用以下語法來定義配置:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Message, MessageViewModel>()
.ForMember(destination => destination.SomeDestinationField, map => map.MapFrom(source => source.SomeSourceFieldWithDifferentName))
.ForMember(destination => destination.SomeDestinationField, map => map.MapFrom(source => source.SomeSourceField ?? SomeDefaultValue));
});
然后我們可以使用 MapperConfiguration 對象來初始化 Mapper 并執行我們的映射如下:
SourceClass SourceObject = new SourceClass();
// Populate SourceObject with values
var mapper = config.CreateMapper();
DesitnationClass DestinationObject = mapper.Map<DesitnationClass>(SourceObject);
我建議閱讀這些文檔。
- 2 回答
- 0 關注
- 169 瀏覽
添加回答
舉報