我有很多從服務返回並想要映射到我的枚舉類型的枚舉類型。 我想要的是創建一個具有所有轉換邏輯的映射器類。 我做了這樣的事情:將枚舉轉換爲其他枚舉
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 「)...有一個更好的方法嗎? 通用也許?
如果你想映射所有枚舉1on1,爲什麼不使用它們呢? – KyorCode
我們的域名應用程序中有一個命名約定,由我們的系統架構師指定 –
我不認爲您可以通用。如果您可以確定通常哪個值映射到哪個其他值,則可以使用反射來完成。 (你的GetEnum函數可能是通用的,但我認爲你需要一個字典的附加字典來選擇給定類型的正確字典)。 –