使用Options模式的集合的默认值-默认值始终保持不变



我正在构建一个简单的.NET应用程序,并使用Options模式。我的选项类很简单:

public class MyOptions 
{
public IEnumerable<string> Data { get; set; } = new string[0];
}

正如您所看到的,默认情况下,我只希望Data属性是一个空集合。

我注意到DataALWAYS是一个空数组,即使我实际上为该属性提供了一些非默认配置。我还看到,如果我将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容量的集合。

相关内容

  • 没有找到相关文章

最新更新