Asp.Net Core輕松學(xué)習(xí)系列之配置文件
前言
在 .NET Core 項(xiàng)目中,配置文件有著舉足輕重的地位;與.NetFramework 不同的是,.NET Core 的配置文件都以 .json 結(jié)尾,這表示一個(gè)標(biāo)準(zhǔn)的 json 格式的文件;一個(gè)標(biāo)準(zhǔn)的 Asp.Net Core MVC 項(xiàng)目,一定帶著一個(gè) appsettings.json 文件,該文件便是項(xiàng)目默認(rèn)配置文件,這和基于 .NetFramework 創(chuàng)建的 Asp.Net Web Application (默認(rèn)配置名稱:App.config) 有著根本的不同,今天我們就學(xué)習(xí)如何添加自定義配置到文件中,并把該配置在程序中讀取出來;然后再通過使用 host.json 這個(gè)配置文件使程序運(yùn)行于多個(gè)端口。
下面話不多說了,來一起看看詳細(xì)的介紹吧
1. appsettings.json 文件
1.1 appsettings.json 文件是一個(gè)標(biāo)準(zhǔn)的 json 結(jié)構(gòu)的文件,這表示你只要按照 json 的結(jié)構(gòu)寫入該文件,無論什么內(nèi)容,都能在程序中自動(dòng)讀取,當(dāng)我們創(chuàng)建好 MVC 項(xiàng)目后,系統(tǒng)就自動(dòng)幫我們創(chuàng)建好 appsettings.json 文件,其默認(rèn)內(nèi)容如下:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
1.2 下面我們加一個(gè)配置節(jié)點(diǎn) "book":"博客園精華文章選集"
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"book":"博客園精華文章選集"
}
1.3 在控制器 Controllers/HomeController.cs 中將該節(jié)點(diǎn)內(nèi)容設(shè)置為網(wǎng)頁標(biāo)題輸出,記得引用命名空間
using Microsoft.Extensions.Configuration;
在 Index 方法中加入?yún)?shù) IConfiguration,如下
public IActionResult Index([FromServices]IConfiguration cfg)
{
return View();
}
1.4 輸入命令 dotnet run 啟動(dòng)項(xiàng)目,結(jié)果如下,讀取自定義配置成功

1.5 將配置文件節(jié)點(diǎn)轉(zhuǎn)換為實(shí)體類
我們常常有這樣的需求,在配置文件中做了一堆配置,但是又不想逐個(gè)讀取,太麻煩,如果能轉(zhuǎn)換為實(shí)體類就好了,其實(shí) IConfiguration 就自帶了該天賦,看下面的配置
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"book":"博客園精華文章選集",
"customer":{
"name":"ron.liang",
定義實(shí)體類
public class Customer{
public string Name { get; set; }
public string Gender{get;set;}
public string Job{get;set;}
}
轉(zhuǎn)換為實(shí)體類,可以看到,已經(jīng)轉(zhuǎn)換成功,對(duì)象屬性都已獲得了值

另類方式使用 hosting.json 使程序運(yùn)行于多個(gè)端口
2.1 定義 hosting.json 文件
在實(shí)際的開發(fā)中,程序運(yùn)行必需定義清晰的端口,不能使用隨機(jī)模式,這個(gè)時(shí)候,我們可以利用 hosting.json 文件來定義,無論程序發(fā)布到何處,永遠(yuǎn)以該文件定義的端口來運(yùn)行,首先在項(xiàng)目根目錄下創(chuàng)建一個(gè) hosting.json 文件,并填入以下內(nèi)容。
{
"server.urls": "http://0.0.0.0:12006;http://0.0.0.0:12007"
}
2.2 修改 Program.cs 方法
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var hostConfiguration = new ConfigurationBuilder().AddJsonFile("hosting.json").Build();
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseConfiguration(hostConfiguration);
}
以上方法將剛才創(chuàng)建的 hosting.json 加入配置中,并指定程序啟動(dòng)使用該配置文件
2.2 刪除 Properties 目錄下的 launchSettings.json 文件
2.3 運(yùn)行項(xiàng)目,可以看到,現(xiàn)在項(xiàng)目偵聽端口 12006/12007

結(jié)語
通過本文,我們學(xué)習(xí)到了以下內(nèi)容
1. 知道了appsettings.json 的作用,以及如何從配置文件中讀取項(xiàng)目配置節(jié)點(diǎn)
2. 如何通過 IConfiguration 把配置節(jié)點(diǎn)轉(zhuǎn)換為實(shí)體對(duì)象
3. 使用 hosting.json 使程序運(yùn)行于多個(gè)自定義端口
努力為開源社區(qū)作貢獻(xiàn),推薦一個(gè)自己開發(fā)的基于 .netcore+pgsql 的快速開發(fā)腳手架,內(nèi)置 ORM框架,github地址:https://github.com/lianggx/mystaging
文中如有疏漏之處,歡迎指正。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
CZGL.ProcessMetrics處理監(jiān)控?cái)?shù)據(jù)的三種方式介紹
這篇文章介紹了CZGL.ProcessMetrics處理監(jiān)控?cái)?shù)據(jù)的三種方式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
ASP.NET?Core?MVC中使用Tag?Helper組件
這篇文章介紹了ASP.NET?Core?MVC中使用Tag?Helper組件的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
ASP.NET Web應(yīng)用程序的安全解決方案淺析
ASP.NET Web應(yīng)用程序的安全解決方案淺析,讓大家在以后的開發(fā)中,多注意一下安全問題。2009-11-11
ASP.NET實(shí)現(xiàn)進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了ASP.NET實(shí)現(xiàn)簡單的進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
asp.net 類庫中使用ConfigurationManager.ConnectionStrings
類庫中使用ConfigurationManager.ConnectionStrings的步驟。2009-06-06
.NET讀寫Excel工具Spire.Xls使用 Excel單元格控制(3)
這篇文章主要為大家詳細(xì)介紹了.NET讀寫Excel工具Spire.Xls使用,Excel單元格控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
ASP.NET 應(yīng)用程序級(jí) 驗(yàn)證用戶是否登錄 一般處理程序
驗(yàn)證用戶登錄后才能訪問頁面和進(jìn)行操作的方法有好幾種,比如:Forms,基類中處理、窗體類繼承基類,單獨(dú)寫個(gè)方法在每個(gè)窗體類的Page_Load中調(diào)用等。2010-07-07
ASP.NET?MVC5網(wǎng)站開發(fā)之總體概述(一)
這篇文章主要為大家詳細(xì)介紹了ASP.NET?MVC5網(wǎng)站開發(fā)之總體概述,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

