簡體   English   中英

AutoMapper 通用映射方法不映射枚舉值

[英]AutoMapper generic map method does not map enum values

我有一個通用的映射器函數,用於在視圖模型和域模型之間進行映射。 出於某種原因,它不映射 Enum 值。

public TDomainModel MapToDomainModel<TViewModel, TDomainModel>(TViewModel viewModel)
{
    Mapper.CreateMap<TViewModel, TDomainModel>();
    TDomainModel result = Mapper.Map<TViewModel, TDomainModel>(viewModel);
    return result;
}

public TViewModel MapToViewModel<TDomainModel, TViewModel>(TDomainModel domainModel)
{
    Mapper.CreateMap<TDomainModel, TViewModel>();
    TViewModel result = Mapper.Map<TDomainModel, TViewModel>(domainModel);
    return result;
}

從視圖模型映射到域模型時,我需要將枚舉值映射到整數。 當從域模型映射到視圖模型時,從整數映射到枚舉值。

如果解決方案足夠靈活,可以將可以為空的枚舉轉換為更多類型(短、字節等),反之亦然,那就太好了。

使用 autofac 映射器?

var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<TViewModel, TDomainModel>()
                 .ForMember(dest => dest.enumfield, opt => opt.MapFrom(src => (EnumFieldEnum)src.EnumField))               
                 .ReverseMap();
});


mapper = config.CreateMapper();

...`

var yy= mapper.Map<TDomainModel>(xx);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM