我有这样的一个Helper类:

class Helper : Settings
{
    [Setting, DefaultValue(false)]
    public bool DeclineData { get; set; }

    // ....

    [Setting, DefaultValue(new List<string>())]
    public List<string> AcceptList { get; set; }
}

但是我的DefaultValueList<string>导致错误:



我也尝试过typeof(List<string>),但也失败了。
Setting实际上是System.Attribute,因为Settings继承自它,所以这不是我的电话,因为它不是我的代码,也没有更改的余地。

我的问题是,如何将DefaultValue设置为属性AcceptList

尽管Selman22答案不会产生直接错误来设置默认值,但是它不允许它序列化或反序列化数据,并且由于我对这种混淆的API的信息非常有限,因此我选择了另一条路线。

这不是直接的解决方案,而是一种解决方法,直到我找出有关此API的更多信息为止,方法是将DefaultValue("")设置为空,并将属性用作字符串,并使用定界符在私有(private)属性中从字符串来回转换为列表我能够保存所需的数据。

最佳答案

由于它必须是一个编译时间常数,因此只能将其设置为null:

[Setting, DefaultValue(default(List<string>)]
public List<string> AcceptList { get; set; }

关于c# - 如何设置列表属性的DefaultValue?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27797944/

10-11 22:37
查看更多