class SomeObject
{
public string name {get;set;}
}
class CustomCollection : List<SomeObject>
{
public int x {get;set;}
public string z {get;set;}
}
class A
{
public CustomCollection collection { get ; set; }
}
class B
{
public CustomCollection collection { get ; set; }
}
// Creating mapping
Mapper.CreateMap<A, B>();
当我将 A 映射到 B 时,除 CustomCollection 中的 X 和 Z 之外,所有属性都被正确映射。
CustomCollection 正确获取了 SomeObject 的初始化列表,并且 SomeObject.Name 也正确映射。
只有我在集合中声明的自定义属性 X、Z 不会被映射。
我究竟做错了什么?
我发现的唯一方法是像下面那样进行映射后,但是它有点违背了使用 automapper 的目的,并且每次我向 CustomCollection 添加新属性时它都会中断。
Mapper.CreateMap<A, B>().AfterMap((source, destination) => {
source.x = destination.x;
source.z = destination.z ;
});