C# AutoMapper-接口作为源

C# AutoMapper-接口作为源,c#,automapper,C#,Automapper,我在.NET Framework中的程序使用了AutoMapper 2.0,它通过以下方式创建了一个映射: Mapper.CreateMap<IChannel, Channel>() .ForMember(dest => dest.IsAlarm, opt => opt.MapFrom(src => src.IsAlarm)) .ForMember(dest => dest.ActiveAlarms, opt =

我在.NET Framework中的程序使用了
AutoMapper 2.0
,它通过以下方式创建了一个映射:

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));
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);
Mapper.CreateMap()
.ForMember(dest=>dest.IsAlarm,opt=>opt.MapFrom(src=>src.IsAlarm))
.FormMember(dest=>dest.ActiveAlarms,opt=>opt.MapFrom(src=>src.Alarms.Active))
.FormMember(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));
现在我正试图将这个程序移到.NETCore,我必须使用AutoMapper的新版本。我试着这样做:

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));
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);
Mapper.Initialize(cfg=>
{
cfg.CreateMap()
.ForMember(dest=>dest.IsAlarm,opt=>opt.MapFrom(src=>src.IsAlarm))
.FormMember(dest=>dest.ActiveAlarms,opt=>opt.MapFrom(src=>src.Alarms.Active))
.FormMember(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(源代码);

显然,我不能创建接口的实例。我如何用最新版本的AutoMapper复制第一段代码?

您以前是如何创建IChannel实例的?它是一个公共接口,有许多数据在与Channel不同的项目中解决。我使用AutoMapper只推断我需要的数据。好吧,这很好,但不是问。您是如何使用.net Framework获得IChannel实例的?像IChannel source=magic\u powder\u simsalabim之类的?使用旧库
Mapper.CreateMap
您不需要初始化任何东西。代码是我发布的全部。