C# 带有字典的默认值属性

C# 带有字典的默认值属性,c#,attributes,C#,Attributes,我正在尝试使用defaultvalue属性 所以我知道如何使用字符串创建默认属性 [DefaultValue("This is the message")] 但是如何为字典创建默认值呢 我试过这个 [DefaultValue(new Dictionary<string, string>() { { "Test", "test" } })] [DefaultValue(新字典(){{“Test”,“Test”}}]

我正在尝试使用defaultvalue属性

所以我知道如何使用字符串创建默认属性

 [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?)?还有什么?我想给你一个默认值