首页 > 解决方案 > 带有字典的默认值属性

问题描述

我正在尝试使用 defaultvalue 属性 Default Value Documentation

所以我知道如何用字符串做一个默认属性

 [DefaultValue("This is the message")]

但是如何为字典设置默认值?

我试过这个

   [DefaultValue(new Dictionary<string, string>() { { "Test", "test" } })]

但我得到这个错误

错误 CS0182 属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

标签: c#attributes

解决方案


您不能在任何属性中使用 Dictionary,但您可以尝试使用键 + 值添加自己的属性。

我不知道您想如何使用它,但我建议您尝试以下方法:

public class DictionaryDefaultAttribute : DefaultValueAttribute
{
    public DictionaryDefaultAttribute(string key, string value) 
        : base(new Dictionary<string, string>() {{key, value}})
    {
    }
}

推荐阅读