簡體   English   中英

無法從 appsettings 獲取對象列表

[英]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 映射失敗了,所以對於其他有問題的人,請檢查您的數據符合數據類型

C# 強類型ConfigurationBuilder列表<object>從應用設置<div id="text_translate"><p>真的在為這個苦苦掙扎——它應該這么難嗎?!</p><p> 我的 appsettings 中有一個簡單的 object 數組:</p><pre> "AppSettings": { "Names": [ { "Id": "1", "Name": "Mike" }, { "Id": "2", "Name": "John" } ] }</pre><p> 然后我有一個 class</p><pre> public class AppSettings { public List&lt;Names&gt; Names { get; set; } = new List&lt;Names&gt;(); } public class Names { public string Id { get; set; } public string Name { get; set; } }</pre><p> 我在我的應用設置中讀到:</p><pre> var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json").Build(); var config = new AppSettings();</pre><p> 這就是出錯的地方:</p><pre> config.Names = configuration.GetSection("AppSettings:Names") //&lt;&lt;&lt;&lt; what do I do here?</pre><p> 似乎它都與IConfigurationSection相關,這沒有幫助。</p></div></object>

[英]C# strongly typed ConfigurationBuilder List<object> from appsettings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 無法從appSettings中讀取 無法獲取對象屬性(的列表)以從局部視圖進行綁定 C# 強類型ConfigurationBuilder列表<object>從應用設置<div id="text_translate"><p>真的在為這個苦苦掙扎——它應該這么難嗎?!</p><p> 我的 appsettings 中有一個簡單的 object 數組:</p><pre> "AppSettings": { "Names": [ { "Id": "1", "Name": "Mike" }, { "Id": "2", "Name": "John" } ] }</pre><p> 然后我有一個 class</p><pre> public class AppSettings { public List&lt;Names&gt; Names { get; set; } = new List&lt;Names&gt;(); } public class Names { public string Id { get; set; } public string Name { get; set; } }</pre><p> 我在我的應用設置中讀到:</p><pre> var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json").Build(); var config = new AppSettings();</pre><p> 這就是出錯的地方:</p><pre> config.Names = configuration.GetSection("AppSettings:Names") //&lt;&lt;&lt;&lt; what do I do here?</pre><p> 似乎它都與IConfigurationSection相關,這沒有幫助。</p></div></object> 無法從 appsettings.json 讀取數據 無法從Web.Config中讀取appSettings值 無法來自 appsettings.json 的 IConfiguration 提供程序的 map 實例 無法從外部 appSettings 文件中讀取密鑰? 獲取列表類型 <T> 來自對象 從List獲取特定類型的對象<T> 從代碼中獲取appSettings configSource
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM