Связывание значения перечисления с локализованным строковым ресурсом

Связанные с: Получить enum из атрибута enum

Я хочу наиболее поддерживаемый способ привязки перечисления и связанных с ним локализованных строковых значений к чему-либо.

Если я помещаю перечисление и класс в один файл, я чувствую себя в некоторой степени в безопасности, но я должен предположить, что есть лучший способ. Я также подумал, что имя enum должно совпадать с именем строки ресурса, но я боюсь, что я не всегда могу быть здесь, чтобы обеспечить это.

using CR = AcmeCorp.Properties.Resources;

public enum SourceFilterOption
{
    LastNumberOccurences,
    LastNumberWeeks,
    DateRange
    // if you add to this you must update FilterOptions.GetString
}

public class FilterOptions
{
    public Dictionary<SourceFilterOption, String> GetEnumWithResourceString()
    {
        var dict = new Dictionary<SourceFilterOption, String>();
        foreach (SourceFilterOption filter in Enum.GetValues(typeof(SourceFilterOption)))
        {
            dict.Add(filter, GetString(filter));
        }
        return dict;
    }

    public String GetString(SourceFilterOption option)
    {
        switch (option)
        {
            case SourceFilterOption.LastNumberOccurences:
                return CR.LAST_NUMBER_OF_OCCURANCES;
            case SourceFilterOption.LastNumberWeeks:
                return CR.LAST_NUMBER_OF_WEEKS;
            case SourceFilterOption.DateRange:
            default:
                return CR.DATE_RANGE;
        }
    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос