簡體   English   中英

訪問庫項目中的配置object(appsettings.json)

[英]Access configuration object (appsettings.json) in library project

我啟動了一個 .net 內核 web api 項目。 我有一個主要項目和許多其他項目(如 DAL、Common 等)的解決方案。

我想在 Common 項目中創建一個 class ,它將在我的不同庫項目之間共享配置設置(appsettings.json)。 那么,如何從 class 訪問 Iconfiguration?

這是一個好方法嗎? 或者我應該在主項目中創建一個 class 以從其他項目獲取配置數據?

一種方法是根據 appsettings.json 文件中的部分/子部分創建配置 Model,在 Startup.cs class 中添加配置部分,然后您可以將配置注入到內置的依賴項注入中任何你需要它的地方。

例如

appsettings.json:

{
  "MyConfiguration" : {
     "Configuration1" : "1",
   }
}

您的配置 model:

public class MyConfiguration 
{
   public int Configuration1 { get; set; }
}

然后在 ConfigureServices 方法的 StartupClass 中,您必須添加

services.Configure<MyConfiguration>(configuration.GetSection("MyConfiguration"));
services.AddOptions();

當您想在代碼中的某處使用該配置時,您只需將其注入構造函數中,如下所示:

public class SomeClass 
{
  private MyConfiguration MyConfiguration { get; }

  public SomeClass(IOptions<MyConfiguration> myConfigurationOptions)
  {
    MyConfiguration = myConfigurationOptions.Value;
  }

//... more code
}

然后就可以訪問了

MyConfiguration.Configuration1

您可以將該文件as a link添加到您的項目中。

  1. 右鍵單擊您的項目,然后 select "Add" ->"Existing Item..."
  2. 選擇要添加到解決方案的文件
  3. 您需要單擊“添加”按鈕右邊緣的向下箭頭圖標,而不是按 Enter 或單擊“添加”按鈕,以及 select“ Add As Link ”。

請參考此鏈接

如何訪問列表<object>來自 appsettings.Json?<div id="text_translate"><p> 在我的 appsettings.json 我有一個這樣的字段</p><pre> "MyFields": [ { "name":"one", "type":"type1" "parameters":[{"key":"url","value":"myurl.com"}, {"key":"data","value":"mydata"}] }, { "name":"two", "type":"type2"... .. and so on } ]</pre><p> 我制作了一個具有以下屬性的 class Myfield:</p><pre> public class MyField { [JsonProperty] public string? name { get; set; } [JsonProperty] public string? type { get; set; } [JsonProperty] public IDictionary<string,string>? parameters { get; set; } }</pre><p> 我正在嘗試使用配置在另一個 class 中訪問它,如下所示:</p><pre> //config is the configuration var myFields = config.GetSection("MyFields").Get<List<MyField>>();</pre><p> 問題是 myFields 結果是空的。 但是當我通過消除“參數”字段來做同樣的事情時,它就像一個魅力。</p><p> 我知道這與匹配不當有關,但能得到一些幫助會很棒。</p></div></object>

[英]How can I access a List<object> from appsettings.Json?

暫無
暫無

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

相關問題 從類庫項目訪問appsettings.json文件設置 如何在另一個項目或類庫中使用 appsettings.json 從 DBContext Class 庫中的主項目讀取 appsettings.json 從同一解決方案中的另一個項目訪問 appsettings.json 很熱嗎? 從.NET 4.5.2項目訪問appsettings.json 如何訪問列表<object>來自 appsettings.Json?<div id="text_translate"><p> 在我的 appsettings.json 我有一個這樣的字段</p><pre> "MyFields": [ { "name":"one", "type":"type1" "parameters":[{"key":"url","value":"myurl.com"}, {"key":"data","value":"mydata"}] }, { "name":"two", "type":"type2"... .. and so on } ]</pre><p> 我制作了一個具有以下屬性的 class Myfield:</p><pre> public class MyField { [JsonProperty] public string? name { get; set; } [JsonProperty] public string? type { get; set; } [JsonProperty] public IDictionary<string,string>? parameters { get; set; } }</pre><p> 我正在嘗試使用配置在另一個 class 中訪問它,如下所示:</p><pre> //config is the configuration var myFields = config.GetSection("MyFields").Get<List<MyField>>();</pre><p> 問題是 myFields 結果是空的。 但是當我通過消除“參數”字段來做同樣的事情時,它就像一個魅力。</p><p> 我知道這與匹配不當有關,但能得到一些幫助會很棒。</p></div></object> 在 EF 上下文中使用 appsettings.json 配置 未找到配置文件“appsettings.json”且不是可選的 在 Automapper 配置中使用 appsettings.json 值 appsettings.json 界面內的配置界面
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM