我在MVC / MVVM类型应用程序中使用了以下示例类:
class A
{
public string Property1 { get; set; }
}
class B : A
{
public string Property2 { get; set; }
}
class ViewModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
A是我的基类,B是派生类。 ViewModel意味着包含A& A;乙
我想使用AutoMapper来映射A& A B到ViewModel。这样做的最佳方式是什么?
假设我在A上有需要.ForMember调用的复杂属性,那么在创建从B到ViewModel的映射时,是否必须为这些复杂属性重复相同的映射,或者是否有一种方法可以继承/重用A到ViewModel?
答案 0 :(得分:1)
如果将A映射到ViewModel,则需要忽略()A上不存在的成员,并重复需要共享的任何配置。
继承只是一个棘手的问题,行为开始变得复杂而不那么传统。但是,您可以在配置API上创建扩展方法,以封装所有重复的配置调用。