簡體   English   中英

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

真的在為這個苦苦掙扎——它應該這么難嗎?!

我的 appsettings 中有一個簡單的 object 數組:

"AppSettings": {
    "Names": [
      {
        "Id": "1",
        "Name": "Mike"
      },
      {
        "Id": "2",
        "Name": "John"
      }    
    ]
}

然后我有一個 class

public class AppSettings
{
    public List<Names> Names { get; set; } = new List<Names>();
}

public class Names
{
    public string Id { get; set; }
    public string Name { get; set; }
}

我在我的應用設置中讀到:

var configuration = new ConfigurationBuilder()
                            .SetBasePath(Directory.GetCurrentDirectory())
                            .AddJsonFile("appSettings.json").Build();

var config = new AppSettings();

這就是出錯的地方:

config.Names = configuration.GetSection("AppSettings:Names") //<<<< what do I do here?

似乎它都與IConfigurationSection相關,這沒有幫助。

使用ConfigurationBinder.Get<T>擴展從設置中獲取整個 object 圖。

ConfigurationBinder.Get<T>綁定並返回指定的類型。 ConfigurationBinder.Get<T>可能比使用ConfigurationBinder.Bind更方便。 以下代碼顯示如何將ConfigurationBinder.Get<T>AppSettings class 一起使用:

//...

AppSettings config = configuration.GetSection("AppSettings").Get<AppSettings>();

//...

ASP.NET 內核中的參考配置

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM