サービスから返され、列挙型にマップしたい列挙型がたくさんあります。私が欲しいのは、すべての変換ロジックを持つマッパークラスを作成することです。私はこのようなことをしました:
public static class ErrEnumMapper
{
private static Dictionary<FullErrorTypeError, eError> dictionary;
static ErrEnumMapper()
{
var dictionary = new Dictionary<FullErrorTypeError, eError>()
{
{FullErrorTypeError.APP, eError.APPLICATION},
{FullErrorTypeError.INF, eError.INF},
{FullErrorTypeError.NO, eError.NONE},
{FullErrorTypeError.PAX, eError.PASSENGER},
{FullErrorTypeError.SYS, eError.SYSTEM}
};
}
public static eError GetEnum(FullErrorTypeError key)
{
var val = dictionary[key];
if (val != null)
return val;
throw new InvalidOperationException();
}
}
しかし、他にも多くの列挙型があるので、この方法で、多くの静的フィールド(「辞書」フィールドなど)とそれに相当するメソッド(「GetEnum」など)を作成する必要があります...これを行うためのより良い方法はありますか?ジェネリックかも?