映射2枚举值到1值

我对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;

            ...
        }
    }
}

这可能不是将两个枚举值映射到一个的最简洁的方法,但是它应该可以工作.

上一篇:所提供的AutoMapper值类型错误


下一篇:[转载]AutoMapper 9.0的改造