使用 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 的参数的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)