Zachowaj odwzorowanie enum-to-object z klasą enum?

Często potrzebuję globalnego, na stałe zakodowanego odwzorowania między wyliczeniem a innym obiektem (w tym przykładzie ciągiem znaków). Chcę zlokalizować enum i definicje mapowania, aby wyjaśnić konserwację.

Jak widać, w tym przykładzie tworzona jest irytująca klasa z jednym polem statycznym.

<code>public enum EmailTemplates
{
    // Remember to edit the corresponding mapping singleton!
    WelcomeEmail,
    ConfirmEmail
}

public class KnownTemplates
{
    public static Dictionary<EmailTemplates, string> KnownTemplates;
    static KnownTemplates() {
        KnownTemplates.Add(EmailTemplates.WelcomeEmail, "File1.htm");
        KnownTemplates.Add(EmailTemplates.ConfirmEmail, "File2.htm");
    }
}
</code>

Czasami klasa mapowania może mieć więcej funkcji i znaczącą nazwę, a działanie mapowania może być nawet prywatne. Ale to tylko zanieczyszcza problem konserwacji / korelacji.

Czy ktoś ma dobry wzór?

questionAnswers(3)

yourAnswerToTheQuestion