Verknüpfen des Aufzählungswerts mit einer lokalisierten Zeichenfolgenressource

Verbunden:Erhalte Enum vom Enum Attribut

Ich möchte die am besten wartbare Methode zum Binden einer Aufzählung und der damit verbundenen lokalisierten Zeichenfolgenwerte an etwas.

Wenn ich die Aufzählung und die Klasse in dieselbe Datei bringe, fühle ich mich etwas sicher, aber ich muss davon ausgehen, dass es einen besseren Weg gibt. Ich habe auch in Betracht gezogen, dass der Name der Aufzählung mit dem Namen der Ressourcenzeichenfolge identisch ist, aber ich fürchte, ich kann nicht immer hier sein, um dies durchzusetzen.

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

Antworten auf die Frage(5)

Ihre Antwort auf die Frage