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

Posted

技术标签:

【中文标题】使用 Properties.Settings.Default 作为 DisplayName 的参数【英文标题】:Using Properties.Settings.Default as an argument for DisplayName 【发布时间】:2011-09-18 08:31:27 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

这是一个很好的解决方案。谢谢!

以上是关于使用 Properties.Settings.Default 作为 DisplayName 的参数的主要内容,如果未能解决你的问题,请参考以下文章