Связывание значения перечисления с локализованным строковым ресурсом
Связанные с: Получить 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;
}
}
}