ServiceStack 和 .NET Core AppSettings 复杂对象

ServiceStack and .NET Core AppSettings complex object

我正在使用文档 (https://docs.servicestack.net/host-configuration) 中的这个将我的 appsettings.json 加载到 ServiceStack 中:

AppSettings = new NetCoreAppSettings(Configuration)

我的 appsettings.json 有这一行:

"test": [ "a", "b" ]

然而,当我执行 var allSettings = AppSettings.GetAll(); 并查找我的密钥 test 时,它是 null

我知道 .NET 核心仅通过使用 .Bind() 支持 list/dictionary,这有效:

List<string> test = new List<string>();
Configuration.GetSection("test").Bind(test);

由于 ServiceStack 有 GetListGetDictionary 甚至 Get<T> 等方法,我认为我做错了什么,因为它不起作用。

所有 ServiceStack 的 AppSettings providers deserializes string scalar values using JSV Format 所以如果你想使用它的 GetList()Get<T> 你的 appsettings.json 配置将需要看起来像:

"test": "a,b,c"

或者

"test": "[a,b,c]"

您可以从中解决:

var test = AppSettings.GetList("test"); // or
var test = AppSettings.Get<List<string>>("test");