ASP.NET Core appsettings.json File

在這篇文章中,我將詳細介紹在ASP.NET Core中使用appsettings.json文件的重要性。這篇文章,我將詳細介紹下面幾個問題:

  1. 在ASP.NET Core應用程序中,有哪些不同的配置資源可用呢?

  2. 什麼是ASP.NET Core appsetting.json文件?

  3. 在ASP.NET Core應用程序中,怎樣獲取配置文件的信息?

  4. ASP.NET Core應用程序中配置執行的順序是怎樣的?

  5. 讀取配置,默認的順序是怎樣的?

  6. 在ASP.NET Core應用程序中,怎樣通過命名行工具,來傳遞配置項的值?

在ASP.NET Core應用程序中,有哪些不同的配置資源是可用的呢?

       如果你使用之前版本的.NET創建應用程序,肯定就會知道Web.Config文件的重要性。

       在之前版本的ASP.NET 應用程序中,我們通常將配置信息寫在webConfig文件中,例如數據庫連接字符串、全局變量、以及任何其他的配置信息等。

       但是在ASP.NET Core中,應用程序的配置信息,可以來自很多不同的資源,例如:

  1. 文件(appsettings.json、appsetting.{Environment}.json、{Environment}代表的是當前程序運行的環境,例如Development、Staging或者Production).

  2. User Secrets

  3. 環境變量(Environment variables)

  4. 命令行參數(Command-line arguments)

什麼是ASP.NET Core appsettings.json文件?

我們打開之前創建的空模板的ASP.NET Core應用程序,可以看到:

image

打開appsettings.json文件:

image

現在我添加自己自定義的配置文件:

image

在ASP.NET Core應用程序中,怎麼獲取配置信息?

在Startup類中,爲了獲取配置信息,你需要使用ASP.NET Core提供的IConfiguration接口。所以你要做的就是在Startup類的構造函數中注入這個IConfiguration服務.

image

現在我們來解釋一下上面的代碼:

首先我們創建了一個IConfiguration類型的私有變量,然後通過依賴注入的形式給這個變量賦值。

image

然後我們使用IConfiguration服務的實例來獲取變量的值:

image

運行程序,可以看到:

image

怎麼回事我們寫的中文,咋亂碼了,通過一番查詢搜索:

修改代碼如下:

image

接着運行項目:可以看到不亂碼了!~~~

image

依賴注入設計模式

        在我們之前版本的ASP.NET應用程序中,依賴注入設計模式是可選的,那是時候,你想配置的話,就得需要使用一些框架,例如:Ninject、StructureMap、IUnity容器等等。

       在ASP.NET Core中,依賴注入是作爲框架的一部分,嵌入到框架裏面的。依賴注入模式,允許我們開發鬆耦合的系統,易於維護,易於擴展、易於測試。如果這篇文章中討論依賴注入不夠詳細,沒關係,這個系列的後面文章中,我還會介紹到。

ASP.NET Core應用程序中配置執行的順序是怎樣的?

在瞭解執行順序之前,我們先看看appsettings.Development.json文件。

image

我們修改一下DevelopMent.json文件:

image

可以看到Develop.json文件中,同樣有一個一樣的MyCustonKey節點,我們執行程序:

image

輸出的也是亂碼,這是因爲Develop.json文件還沒改變格式爲utf-8.我們修改文件格式,在運行:

image

image

可以發現現在沒有亂碼了!同樣通過這個,你可以得出一個結論:如果你有多個配置文件,每個配置文件中,都有一個相同的配置鍵,其值,是以最後一個爲準,最後的總是會覆蓋之前的!

讀取配置文件默認的順序是?

不同的配置文件中,讀取相同的鍵值的順序是:

  1. appsettings.json

  2. appsetting.{Environment}.json.[這裏我們是appsettings.development.json]

  3. User secrets

  4. 環境變量

  5. 命令行參數

現在我們已經有了兩處一樣的配置信息:MyCustomKey,現在我們在環境變量中加入這個鍵值信息:

image

用圖形化界面加環境變量和在launchsettting.json文件中加是一樣的:我們在圖形界面加了之後,在launchsetting.json文件中立馬就有了:

image

然後我們運行程序:

image

可以看到現在配置信息,讀取的是環境變量中的。

怎樣通過命令行工具來傳遞配置的值?

  1. 切換到項目目錄:cd /d 項目目錄

  2. dotnet run MyCustomKey=”通過命令行傳遞參數”

image

然後打開URL: 鄭州市婦科醫院:http://www.zztjfk.com/鄭州婦科醫院哪家好:http://www.zztjfk.com/鄭州婦科醫院做檢查多少錢:http://www.zztjfk.com/

image

可以看到讀取的是命令行的值了!

如果你願意,同樣可以改變這個默認的順序,甚至你可以添加你自己的配置文件,接下來的文章中,我將會和你們將,如何創建一個自定義的配置文件。

下篇文章,我將說到ASP.NET Core中的中間件組件。這篇文章我已經介紹appsettings.json文件,很詳細了,希望你們能看懂!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章