我想要的是将基类映射到开放类型的泛型。
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;
}
}