【发布时间】:2018-01-15 22:17:07
【问题描述】:
通常,您将 Automapper 配置为从类型 A 映射到类型 B。我需要自动映射器映射到类型 B 或类型 C,具体取决于类型 A 中的属性值。我还需要从类型 B 或类型映射回来C 输入 A。
目前提出的解决方案是定义两种类型的映射(A => B,A => C)并根据鉴别器在自定义 if/switch 结构中调用正确的映射。映射嵌套类型,这个方案不起作用,因为这时会调用上级映射。
例如,Animal 类型根据动物的 AnimalType 值映射到猫或狗。
我还需要从猫或狗返回的方法,这应该很简单,因为在这里我可以定义 2 个固定关系(狗 => 动物,猫 => 动物)。
映射动物 => 可以定义狗或猫吗?如果有,怎么做?
public enum EAnimalType
{
Cat = 1,
Dog = 2
}
public class Animal
{
public EAnimalType AnimalType { get; set; }
public int Age { get; set; }
}
public abstract class AnimalDto
{
public int Age { get; set; }
}
public class CatDto : AnimalDto {}
public class DogDto : AnimalDto {}
【问题讨论】:
标签: c# automapper