次のクラスのマッピング (または 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; }
}
具体的な Source Type に応じて Destination クラスの DestinationEnum の宛先値を指定したい場合、AutoMapper マッピングはどのようになりますか? 例えば
- マッパーがクラス "Source" から "Destination" にマップする場合、Source.SourceEnumVal == fu の場合、Destination.EnumProperty を "undefined" に設定する必要があります。
- マッパーがクラス "source" から "Destination" にマップする場合、Source.SourceEnumVal == "ba" の場合、Destination.EnumProperty を "oneValue" に設定する必要があります。
- マッパーがクラス "ConcreteSource" から "Destination" にマップする場合、ConcreteSource.ConcreteSourceEnumVal == "second" の場合、Destination.EnumProperty を "oneValue" に設定する必要があります。
- マッパーがクラス "ConcreteSource" から "Destination" にマップする場合、ConcreteSource.ConcreteSourceEnumVal != "second" の場合、Destination.EnumProperty を "undefined" に設定する必要があります