我正在使用自动映射器来展平来自 WS 的对象。简化模型如下:
public abstract class AOrder {
public Product Product {get;set;}
public decimal Amount {get;set;}
//number of other properties
}
public abstract class Product {
//product properties
}
public class RatedProduct : Product {
public int Rate { get;set;}
}
public class MarketOrder : AOrder {
//some specific market order properties
}
使用 automapper 我试图将其展平为:
public class OrderEntity {
public decimal Amount {get;set;}
public int ProductRate {get;set;}
}
与下一个映射:
CreateMap<RatedProduct, OrderEntity>();
CreateMap<MarketOrder, OrderEntity>();
上述映射不会映射 ProductRate。 Atm 我刚刚使用了 AfterMap:
CreateMap<MarketOrder, OrderEntity>()
.AfterMap((s,d) => {
var prod = s.Product as RatedProduct;
if (prod != null)
{
//map fields
}
});
这工作得很好,但我想如果我可以重用自动映射器展平的可能性(即按名称匹配),我不需要在很多地方应用后映射。
注意:我无法更改 WS,这只是对象层次结构的一小部分。
建议表示赞赏。