[英]Can't get list of object from appsettings
我的应用程序设置如下所示:
"Tenants": [
{
"Id": "00000000-0000-0000-0000-00000000000",
"ConnectionString": "dbstring"
},
{
"Id": "00000000-0000-0000-0000-00000000001",
"ConnectionString": "dbstring"
}
]
和一个看起来像这样的对象:
public class TenantSecrets
{
public string ConnectionString { get; set; }
public Guid Id { get; set; }
}
public class Tenants : List<TenantSecrets> { }
当我尝试配置它们或像这样绑定它们时:
services.Configure<Tenants>(Configuration.GetSection("Tenants"));
var tenants = new Tenants();
Configuration.Bind("Tenants", tenants);
该列表始终为空,有谁知道为什么或如何调试它? 调试时,我可以在 appsettings 配置阅读器中看到该列表,但该对象似乎从未映射过。
编辑:很好,你发现了这个错误,它恰好工作得很好。 我不想写一个无用的答案,所以这里是使用选项模式的版本。
在Startup.cs
文件中配置Tenants
类(方法ConfigureServices )
services.Configure<Tenants>(Configuration.GetSection("Tenants"));
然后,在控制器构造函数中注入IOptions<Tenants>
服务。
private readonly Tenants _tenants;
public HomeController(IOptions<Tenants> tenantOptions)
{
_tenants = tenantOptions.Value;
}
好吧,我想通了,结果我用于 Id 的空 guid 比 guid 少一个 0,我现在知道配置到 poco 映射失败了,所以对于其他有问题的人,请检查您的数据符合数据类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.