C# 带有字典的默认值属性
我正在尝试使用defaultvalue属性 所以我知道如何使用字符串创建默认属性C# 带有字典的默认值属性,c#,attributes,C#,Attributes,我正在尝试使用defaultvalue属性 所以我知道如何使用字符串创建默认属性 [DefaultValue("This is the message")] 但是如何为字典创建默认值呢 我试过这个 [DefaultValue(new Dictionary<string, string>() { { "Test", "test" } })] [DefaultValue(新字典(){{“Test”,“Test”}}]
[DefaultValue("This is the message")]
但是如何为字典创建默认值呢
我试过这个
[DefaultValue(new Dictionary<string, string>() { { "Test", "test" } })]
[DefaultValue(新字典(){{“Test”,“Test”}}]
但是我得到了这个错误
错误CS0182属性参数必须是常量表达式,
属性的表达式类型或数组创建表达式
参数类型
不能在任何属性中使用Dictionary,但可以尝试使用key+value添加自己的属性 我不知道您想如何使用它,但我建议您尝试以下方法:
public class DictionaryDefaultAttribute : DefaultValueAttribute
{
public DictionaryDefaultAttribute(string key, string value)
: base(new Dictionary<string, string>() {{key, value}})
{
}
}
公共类DictionaryDefaultAttribute:DefaultValueAttribute
{
public DictionaryDefaultAttribute(字符串键、字符串值)
:base(新字典(){{key,value}})
{
}
}
你不能。属性参数必须是常量表达式,而构造对象则不是。如果必须使用DefaultValueAttribute
,就无法实现您想要的功能。我对这个错误的规范答案感到惊讶。对于您需要的DefaultValueAttribute
,是否使用字典作为值?序列化?某些控件(winforms?wpf?)?还有什么?我想给你一个默认值