前言
在 .NET Core 項目中,配置文件有著舉足輕重的地位;與.NetFramework 不同的是,.NET Core 的配置文件都以 .json 結尾,這表示一個標準的 json 格式的文件;一個標準的 Asp.Net Core MVC 項目,一定帶著一個 appsettings.json 文件,該文件便是項目默認配置文件,這和基于 .NetFramework 創建的 Asp.Net Web Application (默認配置名稱:App.config) 有著根本的不同,今天我們就學習如何添加自定義配置到文件中,并把該配置在程序中讀取出來;然后再通過使用 host.json 這個配置文件使程序運行于多個端口。
下面話不多說了,來一起看看詳細的介紹吧
1. appsettings.json 文件
1.1 appsettings.json 文件是一個標準的 json 結構的文件,這表示你只要按照 json 的結構寫入該文件,無論什么內容,都能在程序中自動讀取,當我們創建好 MVC 項目后,系統就自動幫我們創建好 appsettings.json 文件,其默認內容如下:
1
2
3
4
5
6
7
8
|
{ "Logging" : { "LogLevel" : { "Default" : "Warning" } }, "AllowedHosts" : "*" } |
1.2 下面我們加一個配置節點 "book":"博客園精華文章選集"
1
2
3
4
5
6
7
8
9
|
{ "Logging" : { "LogLevel" : { "Default" : "Warning" } }, "AllowedHosts" : "*" , "book" : "博客園精華文章選集" } |
1.3 在控制器 Controllers/HomeController.cs 中將該節點內容設置為網頁標題輸出,記得引用命名空間
1
|
using Microsoft.Extensions.Configuration; |
在 Index 方法中加入參數 IConfiguration,如下
1
2
3
4
5
|
public IActionResult Index([FromServices]IConfiguration cfg) { return View(); } |
1.4 輸入命令 dotnet run 啟動項目,結果如下,讀取自定義配置成功
1.5 將配置文件節點轉換為實體類
我們常常有這樣的需求,在配置文件中做了一堆配置,但是又不想逐個讀取,太麻煩,如果能轉換為實體類就好了,其實 IConfiguration 就自帶了該天賦,看下面的配置
1
2
3
4
5
6
7
8
9
10
|
{ "Logging" : { "LogLevel" : { "Default" : "Warning" } }, "AllowedHosts" : "*" , "book" : "博客園精華文章選集" , "customer" :{ "name" : "ron.liang" , |
定義實體類
1
2
3
4
5
|
public class Customer{ public string Name { get ; set ; } public string Gender{ get ; set ;} public string Job{ get ; set ;} } |
轉換為實體類,可以看到,已經轉換成功,對象屬性都已獲得了值
另類方式使用 hosting.json 使程序運行于多個端口
2.1 定義 hosting.json 文件
在實際的開發中,程序運行必需定義清晰的端口,不能使用隨機模式,這個時候,我們可以利用 hosting.json 文件來定義,無論程序發布到何處,永遠以該文件定義的端口來運行,首先在項目根目錄下創建一個 hosting.json 文件,并填入以下內容。
1
2
3
|
{ "server.urls" : "http://0.0.0.0:12006;http://0.0.0.0:12007" } |
2.2 修改 Program.cs 方法
1
2
3
4
5
6
7
8
|
public static IWebHostBuilder CreateWebHostBuilder( string [] args) { var hostConfiguration = new ConfigurationBuilder().AddJsonFile( "hosting.json" ).Build(); return WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseConfiguration(hostConfiguration); } |
以上方法將剛才創建的 hosting.json 加入配置中,并指定程序啟動使用該配置文件
2.2 刪除 Properties 目錄下的 launchSettings.json 文件
2.3 運行項目,可以看到,現在項目偵聽端口 12006/12007
結語
通過本文,我們學習到了以下內容
1. 知道了appsettings.json 的作用,以及如何從配置文件中讀取項目配置節點
2. 如何通過 IConfiguration 把配置節點轉換為實體對象
3. 使用 hosting.json 使程序運行于多個自定義端口
努力為開源社區作貢獻,推薦一個自己開發的基于 .netcore+pgsql 的快速開發腳手架,內置 ORM框架,github地址:https://github.com/lianggx/mystaging
文中如有疏漏之處,歡迎指正。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.cnblogs.com/viter/p/10034597.html