.NET Core讀取配置文件
1. 說(shuō)明
默認(rèn)情況下讀取配置Configuration的默認(rèn)優(yōu)先級(jí):ConfigureAppConfiguration(自定義讀取)>CommandLine(命令行參數(shù))>Environment(環(huán)境變量)>appsetting.json(默認(rèn)配置文件)>UseSetting的順序
原因:讀取配置的順序是后來(lái)者居上模式,后來(lái)注冊(cè)的會(huì)優(yōu)先被讀取到。
2. 獲取配置
2.1 獲取單個(gè)項(xiàng)
//值是數(shù)組
var a0 = Configuration.GetSection("RabbitMQ:Hosts").Get<string[]>();
//獲取數(shù)組第一個(gè)
var a0 = Configuration["RabbitMQ:Hosts:0"];
//值是int類(lèi)型
var a1 = Configuration.GetValue<int>("RabbitMQ:Port");
//值是字符串
var a2 = Configuration.GetValue<string>("RabbitMQ:UserName");
var a2 = Configuration["RabbitMQ:UserName"];2.2 映射項(xiàng)到模型類(lèi)
模型類(lèi)
public class RabbitMQConfig
{
public const string RabbitMQ = "RabbitMQ";
public string[] Hosts { get; set; }
public int Port { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string VirtualHost { get; set; }
}appsettings
"RabbitMQ": {
"Hosts": [ "xxx.xxx.xxx.xxx" ],
"Port": 5672,
"UserName": "admin",
"Password": "xxxxxx",
"VirtualHost": "myQueue"
}2.2.1 注入模型類(lèi)
//startup配置
services.Configure<RabbitMQConfig>(Configuration.GetSection(RabbitMQConfig.RabbitMQ));
//獲取數(shù)據(jù)
private readonly RabbitMQConfig _rabbitMQConfig;
public WeatherForecastController(IOptions<RabbitMQConfig> options)
{
_rabbitMQConfig = options.Value;
}2.2.2 映射項(xiàng)到模型類(lèi)
var info = new RabbitMQConfig(); Configuration.Bind(RabbitMQConfig.RabbitMQ, info); //or Configuration.GetSection(RabbitMQConfig.RabbitMQ).Bind(info);
到此這篇關(guān)于.NET Core讀取配置文件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
aspx中的mysql操作類(lèi)sqldatasource使用示例分享
服務(wù)器裝了mysql odbc驅(qū)動(dòng),想在那個(gè)iis上操作另一個(gè)服務(wù)器的mysql,找到個(gè).net的sqldatasource類(lèi)可以操作mysql,下在把使用方法分享一下2014-01-01
ASP.NET Core中的Razor頁(yè)面實(shí)現(xiàn)路由功能
本文詳細(xì)講解了ASP.NET Core中的Razor頁(yè)面實(shí)現(xiàn)路由功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
ASP.NET Core使用自定義驗(yàn)證屬性控制訪問(wèn)權(quán)限詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET Core使用自定義驗(yàn)證屬性控制訪問(wèn)權(quán)限的相關(guān)資料,這是我們?cè)谌粘9ぷ髦薪?jīng)常會(huì)遇到的一個(gè)需求,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-10-10
.Net中的Junction Points(交接點(diǎn))操作
這篇文章介紹了.Net中的Junction Points(交接點(diǎn))操作,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
.Net使用RabbitMQ即時(shí)發(fā)消息Demo
RabbitMQ是一個(gè)在AMQP基礎(chǔ)上完整的,可復(fù)用的企業(yè)消息系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于.Net使用RabbitMQ即時(shí)發(fā)消息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
Visual Studio 2017新版發(fā)布 更強(qiáng)大!
Visual Studio 2017新版發(fā)布 更強(qiáng)大!對(duì)Visual Studio 2017感興趣的小伙伴們可以參考一下2017-05-05
.NET 6開(kāi)發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲(chǔ)
這篇文章主要介紹了.NET 6開(kāi)發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲(chǔ),本篇文章僅完成了數(shù)據(jù)存儲(chǔ)服務(wù)的配置工作,目前還沒(méi)有添加任何實(shí)體對(duì)象和數(shù)據(jù)庫(kù)表定義,所以暫時(shí)沒(méi)有可視化的驗(yàn)證,僅我們可以運(yùn)行程序看我們的配置是否成功:下面來(lái)看詳細(xì)內(nèi)容吧2021-12-12
如何解決ASP.NET新增時(shí)多字段取值的問(wèn)題
這篇文章主要介紹了ASP.NET新增時(shí)多字段取值解決方案,從解題思路出發(fā)分析原因,2015-09-09

