Использование Properties.Settings.Default в качестве аргумента для DisplayName - PullRequest
1 голос
/ 20 июня 2011

Я пытаюсь сохранить значения для атрибута displayName из параметра, хранящегося в файле app.config.

[System.ComponentModel.DisplayName(Properties.Settings.Default.field2Name)]

Это не работает, поскольку это должно быть постоянное значение, которое Properties.Settings.По умолчанию явно нет.Есть ли простой способ обойти это?

1 Ответ

6 голосов
/ 20 июня 2011

Поскольку свойство DisplayName является виртуальным, вы можете сделать что-то подобное:

public class DisplayNameSettingsKeyAttribute : DisplayNameAttribute
{
    private readonly string _settingsKey;

    public DisplayNameSettingsKeyAttribute(string settingsKey)
    {
        _settingsKey = settingsKey;
    }

    public string SettingsKey
    {
        get { return _settingsKey; }
    }

    public override string DisplayName
    {
        get { return (string)Properties.Settings.Default[_settingsKey]; }
    }
}

И использовать его так:

[DisplayNameSettingsKey("field2Name")]
...