Tim*_*Tim 1 c# const properties.settings
我试图从app.config文件中保存的设置存储displayName属性的值.
[System.ComponentModel.DisplayName(Properties.Settings.Default.field2Name)]
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它必须是一个常量值,而Properties.Settings.Default显然不是.有没有简单的方法来解决这个问题?
由于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]; }
}
}
Run Code Online (Sandbox Code Playgroud)
并使用它:
[DisplayNameSettingsKey("field2Name")]
Run Code Online (Sandbox Code Playgroud)