如何使用Automapper映射继承层次结构?

时间:2010-06-22 05:11:39

标签: .net automapper

我在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?

1 个答案:

答案 0 :(得分:1)

如果将A映射到ViewModel,则需要忽略()A上不存在的成员,并重复需要共享的任何配置。

继承只是一个棘手的问题,行为开始变得复杂而不那么传统。但是,您可以在配置API上创建扩展方法,以封装所有重复的配置调用。