关于开放泛型的ReverseMap

时间:2016-01-13 22:32:56

标签: automapper automapper-4

我正在使用AutoMapper 4.1.1(NuGet上的最新稳定版),看起来在开放式通用ReverseMap上使用CreateMap似乎不起作用。

示例程序:

static void Main(string[] args)
{
    //Mapper.CreateMap(typeof(A<>), typeof(B<>)).ReverseMap(); // Doesn't work.
    Mapper.CreateMap(typeof(A<>), typeof(B<>)); // Works.
    Mapper.CreateMap(typeof(B<>), typeof(A<>)); // Works.

    Mapper.CreateMap<AData, BData>().ReverseMap();

    var b = new B<BData> { Data = new BData { Info = "Test" } };
    var a = Mapper.Map<A<AData>>(b);
}

public class A<T>
{
    public T Data { get; set; }
}

public class B<T>
{
    public T Data { get; set; }
}

public class AData
{
    public string Info { get; set; }
}

public class BData
{
    public string Info { get; set; }
}

如果我在其上使用ReverseMap行,则会出现以下异常:

  

缺少类型映射配置或不支持的映射。

     

映射类型:   B`1 - &gt; A`1   ConsoleApplication64.Program + B`1 [[ConsoleApplication64.Program + BData,ConsoleApplication64,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]] - &gt; ConsoleApplication64.Program + A`1 [[ConsoleApplication64.Program + AData,ConsoleApplication64,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]

     

目的地路径:   A`1

     

来源价值:   ConsoleApplication64.Program + B`1 [ConsoleApplication64.Program + BDATA]

我做错了什么,或者我们真的不能将ReverseMap用于开放式泛型?

0 个答案:

没有答案