我完全是 Automapper 的菜鸟,我想知道是否可以将源中的 2 个枚举值映射到目标中的 1 个枚举值。
在下面的示例中,我想将 VisaCredit 和 VisaDebit 都映射到 Visa。
来源:
public enum CardType { VisaCredit, VisaDebit, MasterCard, AmericanExpress, SwitchMaestro }
目的地:
public enum CardType { Visa, MasterCard, AmericanExpress, SwitchMaestro }
最佳答案
您可以为这些类型创建一个映射,然后定义一个自定义转换器:
Mapper.CreateMap<X.CardType, Y.CardType>().ConvertUsing(CardTypeConverter.Convert);
您的卡类型映射函数看起来与此类似(为简洁起见省略了其他映射):
public class CardTypeConverter
{
public static Y.CardType Convert(X.CardType cardType)
{
switch(cardType)
{
...
case X.CardType.VisaCredit:
case X.CardType.VisaDebit:
return Y.CardType.Visa;
...
}
}
}
这可能不是可用于将两个枚举值映射到一个枚举值的最简洁的方法,但它应该有效。
关于c# - Automapper - 将 2 个枚举值映射到 1 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11031016/