3

私はAutomapperの完全な初心者であり、ソースの2つの列挙値を宛先の1にマップできるかどうか疑問に思っています。

以下の例では、VisaCredit と VisaDebit の両方を Visa にマッピングします。

ソース:

public enum CardType { VisaCredit, VisaDebit, MasterCard, AmericanExpress, SwitchMaestro }

行き先:

public enum CardType { Visa, MasterCard, AmericanExpress, SwitchMaestro }
4

1 に答える 1

3

これらの型のマッピングを作成してから、カスタム コンバーターを定義できます。

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;

            ...
        }
    }
}

これは、2 つの列挙値を 1 つにマッピングするために利用できる最も簡潔な方法ではないかもしれませんが、うまくいくはずです。

于 2012-06-14T10:44:36.613 に答える