Vinculando valor enum com recurso de string localizado
Relacionado:Obter enum do atributo enum
Eu quero a maneira mais sustentável de vincular uma enumeração e associa valores de string localizados a algo.
Se eu colocar o enum e a classe no mesmo arquivo, eu me sinto um pouco seguro, mas tenho que assumir que existe uma maneira melhor. Eu também considerei ter o nome do enum igual ao nome da string de recursos, mas infelizmente não posso estar sempre aqui para impor isso.
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;
}
}
}