Manter o mapeamento de enum-to-object com a classe enum?

Freqüentemente preciso de um mapeamento global codificado entre um enum e outro objeto (uma string neste exemplo). Eu quero co-localizar o enum e mapear as definições para esclarecer a manutenção.

Como você pode ver, neste exemplo, uma classe irritante com um campo estático é criada.

<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>

Às vezes, a classe de mapeamento pode ter mais funções e um nome significativo, e a atividade de mapeamento pode até ser privada. Mas isso apenas polui o problema de manutenção / correlação.

Alguém tem um bom padrão para isso?

questionAnswers(3)

yourAnswerToTheQuestion