AutoMapper - 将基类映射到其派生类(使用泛型)

时间:2016-08-15 22:02:36

标签: c# automapper

我想要的是将基类映射到开放类型的泛型。

public class A
{
  public string Title {get; set;}
}

public class B<T> : A
{
  T Content {get; set;}
}

从这里开始,我想做点什么:

var a = new A() { Title = "Fun" };
var b = mapper.Map<A, B<MyContentModel>>(a);

结果是,B填充了标题,但内容字段被忽略。我尝试使用官方AutoMapper文档中提供的各种示例但没有成功;我认为这是因为源和目的地在开放式打字方面并不相同。

通常,我收到的错误表明A和B'1之间不存在映射。我试过了

CreateMap(typeof(A), typeof(B<>));
CreateMap<A, B<>>();

没有映射B的可能迭代,有没有办法用AutoMapper框架处理这个?

我的解决方法是使用构造函数,但我更不愿意策划A中可映射的不断增长的事物列表。

public class B<T>
{
  public B(A a) 
  {
    Title = a.Title;
  }
}

0 个答案:

没有答案