我在.NET Framework中的程序使用了 AutoMapper 2.0
并以这种方式创建了一个 Map :
Mapper.CreateMap<IChannel, Channel>()
.ForMember(dest => dest.IsAlarm, opt => opt.MapFrom(src => src.IsAlarm))
.ForMember(dest => dest.ActiveAlarms, opt => opt.MapFrom(src => src.Alarms.Active))
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.ToString()))
.ForMember(dest => dest.IsWarning, opt => opt.MapFrom(src => src.IsWarning))
.ForMember(dest => dest.ActiveWarnings, opt => opt.MapFrom(src => src.Warnings.Active))
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Measure));
现在我正在尝试将此程序移动到.NET Core,我必须使用新版本的AutoMapper . 我试过这样的方式:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<IChannel, Channel>()
.ForMember(dest => dest.IsAlarm, opt => opt.MapFrom(src => src.IsAlarm))
.ForMember(dest => dest.ActiveAlarms, opt => opt.MapFrom(src => src.Alarms.Active))
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.ToString()))
.ForMember(dest => dest.IsWarning, opt => opt.MapFrom(src => src.IsWarning))
.ForMember(dest => dest.ActiveWarnings, opt => opt.MapFrom(src => src.Warnings.Active))
.ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Measure));
});
var source = new IChannel(); //??
Mapper.Map<IChannel, Channel>(source);
显然我无法创建接口的实例 . 如何使用最新版本的AutoMapper复制第一个代码块?