繁体   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