我有这样的一个Helper类:
class Helper : Settings
{
[Setting, DefaultValue(false)]
public bool DeclineData { get; set; }
// ....
[Setting, DefaultValue(new List<string>())]
public List<string> AcceptList { get; set; }
}
但是我的
DefaultValue
的List<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/