我想为以下类定义一个映射(甚至是 TypeConverter/Resolver): 目的地:
public class Destination
{
public DestinationEnum EnumProperty { get; set; }
public Destination()
{
EnumProperty = DestinationEnum.undefined;
}
}
public enum DestinationEnum
{
oneValue,
anotherValue,
undefined
}
来源:
public enum SourceEnum
{
fu,
ba
}
public enum AnotherSourceEnum
{
first,
second,
third
}
public class Source
{
public SourceEnum SourceEnumVal { get; set; }
}
public class ConcreteSource : Source
{
public AnotherSourceEnum ConcreteSourceEnumVal { get; set; }
}
如果我想根据具体的源类型在 Destination 类中指定 DestinationEnum 的目标值,AutoMapper Mapping 会是什么样子?例如
- 如果映射器从类“Source”映射到“Destination”,则 Destination.EnumProperty 应设置为“undefined” if Source.SourceEnumVal == fu
- 如果映射器从类“source”映射到“Destination”,则 Destination.EnumProperty 应设置为“oneValue”,如果 Source.SourceEnumVal == “ba”
- 如果映射器从类“ConcreteSource”映射到“Destination”,则 Destination.EnumProperty 应设置为“oneValue” if ConcreteSource.ConcreteSourceEnumVal == “second”
- 如果映射器从类“ConcreteSource”映射到“Destination”,则 Destination.EnumProperty 应设置为“undefined” if ConcreteSource.ConcreteSourceEnumVal != “second”