我正在构建一个简单的.NET应用程序,并使用Options模式。我的选项类很简单:
public class MyOptions
{
public IEnumerable<string> Data { get; set; } = new string[0];
}
正如您所看到的,默认情况下,我只希望Data
属性是一个空集合。
我注意到Data
ALWAYS是一个空数组,即使我实际上为该属性提供了一些非默认配置。我还看到,如果我将MyOptions
类更改为:,Data
将从我的配置中正确设置
public class MyOptions
{
public IEnumerable<string> Data { get; set; }
}
为什么在提供默认值时忽略了我的配置?如何保留一些默认值,但能够通过配置进行更改?
如注释中所述,您需要将属性定义为
public class MyOptions
{
public IEnumerable<string> Data { get; set; } = = new List<string>();
}
代码new string[0]
仅初始化具有0容量的集合。