如何解决ServiceStack和.NET Core AppSettings复杂对象
我正在从文档(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<string> test = new List<string>();
Configuration.GetSection("test").Bind(test);
由于ServiceStack具有GetList
,GetDictionary
甚至是Get<T>
之类的方法,因此我认为我做错了什么,因为它不起作用。
解决方法
所有ServiceStack的AppSettings providers使用JSV Format反序列化字符串标量值,因此,如果要使用其GetList()
或Get<T>
,请 appsettings.json 配置看起来应该像这样:
"test": "a,b,c"
或
"test": "[a,c]"
您可以通过以下方式解决:
var test = AppSettings.GetList("test"); // or
var test = AppSettings.Get<List<string>>("test");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。