Asp.Net Core輕松學(xué)習(xí)系列之配置文件
前言
在 .NET Core 項目中,配置文件有著舉足輕重的地位;與.NetFramework 不同的是,.NET Core 的配置文件都以 .json 結(jié)尾,這表示一個標(biāo)準(zhǔn)的 json 格式的文件;一個標(biāo)準(zhǔn)的 Asp.Net Core MVC 項目,一定帶著一個 appsettings.json 文件,該文件便是項目默認(rèn)配置文件,這和基于 .NetFramework 創(chuàng)建的 Asp.Net Web Application (默認(rèn)配置名稱:App.config) 有著根本的不同,今天我們就學(xué)習(xí)如何添加自定義配置到文件中,并把該配置在程序中讀取出來;然后再通過使用 host.json 這個配置文件使程序運行于多個端口。
下面話不多說了,來一起看看詳細(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 項目后,系統(tǒng)就自動幫我們創(chuàng)建好 appsettings.json 文件,其默認(rèn)內(nèi)容如下:
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*" }
1.2 下面我們加一個配置節(jié)點 "book":"博客園精華文章選集"
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "book":"博客園精華文章選集" }
1.3 在控制器 Controllers/HomeController.cs 中將該節(jié)點內(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 啟動項目,結(jié)果如下,讀取自定義配置成功
1.5 將配置文件節(jié)點轉(zhuǎn)換為實體類
我們常常有這樣的需求,在配置文件中做了一堆配置,但是又不想逐個讀取,太麻煩,如果能轉(zhuǎn)換為實體類就好了,其實 IConfiguration 就自帶了該天賦,看下面的配置
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "book":"博客園精華文章選集", "customer":{ "name":"ron.liang",
定義實體類
public class Customer{ public string Name { get; set; } public string Gender{get;set;} public string Job{get;set;} }
轉(zhuǎn)換為實體類,可以看到,已經(jīng)轉(zhuǎn)換成功,對象屬性都已獲得了值
另類方式使用 hosting.json 使程序運行于多個端口
2.1 定義 hosting.json 文件
在實際的開發(fā)中,程序運行必需定義清晰的端口,不能使用隨機(jī)模式,這個時候,我們可以利用 hosting.json 文件來定義,無論程序發(fā)布到何處,永遠(yuǎn)以該文件定義的端口來運行,首先在項目根目錄下創(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 運行項目,可以看到,現(xiàn)在項目偵聽端口 12006/12007
結(jié)語
通過本文,我們學(xué)習(xí)到了以下內(nèi)容
1. 知道了appsettings.json 的作用,以及如何從配置文件中讀取項目配置節(jié)點
2. 如何通過 IConfiguration 把配置節(jié)點轉(zhuǎn)換為實體對象
3. 使用 hosting.json 使程序運行于多個自定義端口
努力為開源社區(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-03GridView導(dǎo)出Excel實現(xiàn)原理與代碼
使用GridView來展示數(shù)據(jù)庫表,幾乎沒對GridView的格式做什么設(shè)定,從配置文件中加載SQL,跑出數(shù)據(jù)就直接綁定到GridView,接下來介紹導(dǎo)出Excel的功能感興趣的朋友可以參考下2013-01-01asp.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里面,幸而在老外那里看到了這個代碼,其實比較簡單,但夠有用2009-01-01ASP.NET?MVC使用JSAjaxFileUploader插件實現(xiàn)單文件上傳
這篇文章介紹了ASP.NET?MVC使用JSAjaxFileUploader插件實現(xiàn)單文件上傳的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09asp.net創(chuàng)建XML文件的方法小結(jié)
這篇文章主要介紹了asp.net創(chuàng)建XML文件的方法,結(jié)合實例形式總結(jié)分析了asp.net創(chuàng)建XML文件的原理,步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2016-04-04ASP.NET實現(xiàn)Hadoop增刪改查的示例代碼
本篇文章主要介紹了ASP.NET實現(xiàn)Hadoop增刪改查的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10