[英]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.