Asp.Net Core輕松學(xué)習(xí)系列之配置文件
前言
在 .NET Core 項(xiàng)目中,配置文件有著舉足輕重的地位;與.NetFramework 不同的是,.NET Core 的配置文件都以 .json 結(jié)尾,這表示一個標(biāo)準(zhǔn)的 json 格式的文件;一個標(biāo)準(zhǔn)的 Asp.Net Core MVC 項(xiàng)目,一定帶著一個 appsettings.json 文件,該文件便是項(xiàng)目默認(rèn)配置文件,這和基于 .NetFramework 創(chuàng)建的 Asp.Net Web Application (默認(rèn)配置名稱:App.config) 有著根本的不同,今天我們就學(xué)習(xí)如何添加自定義配置到文件中,并把該配置在程序中讀取出來;然后再通過使用 host.json 這個配置文件使程序運(yùn)行于多個端口。
下面話不多說了,來一起看看詳細(xì)的介紹吧
1. appsettings.json 文件
1.1 appsettings.json 文件是一個標(biāo)準(zhǔn)的 json 結(jié)構(gòu)的文件,這表示你只要按照 json 的結(jié)構(gòu)寫入該文件,無論什么內(nèi)容,都能在程序中自動讀取,當(dāng)我們創(chuàng)建好 MVC 項(xiàng)目后,系統(tǒng)就自動幫我們創(chuàng)建好 appsettings.json 文件,其默認(rèn)內(nèi)容如下:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
1.2 下面我們加一個配置節(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 啟動項(xiàng)目,結(jié)果如下,讀取自定義配置成功

1.5 將配置文件節(jié)點(diǎn)轉(zhuǎn)換為實(shí)體類
我們常常有這樣的需求,在配置文件中做了一堆配置,但是又不想逐個讀取,太麻煩,如果能轉(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)換成功,對象屬性都已獲得了值

另類方式使用 hosting.json 使程序運(yùn)行于多個端口
2.1 定義 hosting.json 文件
在實(shí)際的開發(fā)中,程序運(yùn)行必需定義清晰的端口,不能使用隨機(jī)模式,這個時候,我們可以利用 hosting.json 文件來定義,無論程序發(fā)布到何處,永遠(yuǎn)以該文件定義的端口來運(yùn)行,首先在項(xiàng)目根目錄下創(chuàng)建一個 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 加入配置中,并指定程序啟動使用該配置文件
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í)體對象
3. 使用 hosting.json 使程序運(yùn)行于多個自定義端口
努力為開源社區(qū)作貢獻(xiàn),推薦一個自己開發(fā)的基于 .netcore+pgsql 的快速開發(fā)腳手架,內(nèi)置 ORM框架,github地址:https://github.com/lianggx/mystaging
文中如有疏漏之處,歡迎指正。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
asp.net開發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁搶紅包功能(思路詳解)
這篇文章主要介紹了asp.net開發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁搶紅包功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
GridView導(dǎo)出Excel實(shí)現(xiàn)原理與代碼
使用GridView來展示數(shù)據(jù)庫表,幾乎沒對GridView的格式做什么設(shè)定,從配置文件中加載SQL,跑出數(shù)據(jù)就直接綁定到GridView,接下來介紹導(dǎo)出Excel的功能感興趣的朋友可以參考下2013-01-01
asp.net基礎(chǔ)學(xué)習(xí)之控件的使用方法
這篇文章主要為大家詳細(xì)介紹了asp.net基礎(chǔ)學(xué)習(xí)之控件的使用方法,感興趣的小伙伴們可以參考一下2016-08-08
動態(tài)加載Js代碼到Head標(biāo)簽中的腳本
我遇到了這樣的問題,請教google,結(jié)果大多數(shù)只是介紹那個注冊js的幾個函數(shù),而這幾個函數(shù)插入的js都在body里面,幸而在老外那里看到了這個代碼,其實(shí)比較簡單,但夠有用2009-01-01
ASP.NET?MVC使用JSAjaxFileUploader插件實(shí)現(xiàn)單文件上傳
這篇文章介紹了ASP.NET?MVC使用JSAjaxFileUploader插件實(shí)現(xiàn)單文件上傳的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
asp.net創(chuàng)建XML文件的方法小結(jié)
這篇文章主要介紹了asp.net創(chuàng)建XML文件的方法,結(jié)合實(shí)例形式總結(jié)分析了asp.net創(chuàng)建XML文件的原理,步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04
ASP.NET實(shí)現(xiàn)Hadoop增刪改查的示例代碼
本篇文章主要介紹了ASP.NET實(shí)現(xiàn)Hadoop增刪改查的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10

