[英]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.