使用Properties.Settings.Default作为DisplayName的参数

本文关键字:DisplayName 参数 作为 Default Properties Settings 使用 | 更新日期: 2023-09-27 17:59:28

我正试图从app.config文件中的设置中存储displayName属性的值。

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

这不起作用,因为它必须是一个常数值,而Properties.Settings.Default显然不是。有什么简单的方法可以解决这个问题吗?

使用Properties.Settings.Default作为DisplayName的参数

由于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")]