網(wǎng)站首頁 編程語言 正文
ASP.NET Core 中提供了一個Configuration?包,用以應(yīng)用配置基于配置提供程序建立的鍵值對。這里以json文件配置的方式,簡單的介紹一下它的用法。
首先定義一個配置文件appsettings.json:
{ "key1": "value1", "key2": -1, "subsection": { "key1": "value2", "key2": -5 } }
如下是基本的用法:
var configBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
var config = configBuilder.Build();
var value1 = config.GetValue<string>("key1");
var value2 = config.GetValue<int>("key2");
.net core將配置操作分布在ConfigurationBuilder和IConfigurationRoot兩個對象了,其中ConfigurationBuilder用來配置數(shù)據(jù)源,IConfigurationRoot則提供統(tǒng)一的讀取操作。
數(shù)據(jù)源:
配置提供程序?qū)⑴渲脭?shù)據(jù)從各種配置源讀取到鍵值對,它支持的配置方式比較多,常見的就有:
命令行參數(shù)
環(huán)境變量
內(nèi)存中的 .NET 對象
設(shè)置文件(Ini、 xm、,Json)
自定義提供程序
基本上常用的配置數(shù)據(jù)源都支持了,支持多數(shù)據(jù)源配置,也支持自定義數(shù)據(jù)源,非常靈活而方便。具體的配置方式可以參考官方文檔ASP.NET Core 中的配置。
CreateDefaultBuilder
為了簡化配置,Asp.net core中提供了一個函數(shù)CreateDefaultBuilder隱式提供了對ConfigurationBuilder的調(diào)用,順序提供了對如下配置文件的配置加載:
appsettings.json。
appsettings.{Environment}.json。
應(yīng)用在使用入口程序集的 Development 環(huán)境中運(yùn)行時的機(jī)密管理器。
環(huán)境變量。
命令行參數(shù)
更多細(xì)節(jié)可以參考官方文檔:設(shè)置主機(jī)
讀取配置
前面的例子中演示了基本的讀取方式:?
var value1 = config.GetValue<string>("key1");
var value2 = config.GetValue<int>("key2");
除了這種方式外,也可以通過Bind方法按照對象的方式讀取:?
class ConfigData
{
public string Key1 { get; set; }
public int Key2 { get; set; }
}
var cfgData = new ConfigData();
config.Bind(cfgData);
另外,對于子節(jié)點(diǎn)的配置,也可以通過GetSection函數(shù)定位到子節(jié)點(diǎn),然后按照前面的方式讀取,例如:?
var value1 = config.GetSection("subsection").GetValue<string>("key1");
var cfgData = config.GetSection("subsection").Get<ConfigData>();
參考文章
ASP.NET Core 中的配置
原文鏈接:https://www.cnblogs.com/TianFang/p/10585714.html
相關(guān)推薦
- 2022-07-02 C++分析構(gòu)造函數(shù)與析造函數(shù)的特點(diǎn)梳理_C 語言
- 2023-12-08 去掉input各種邊框
- 2022-03-29 Qt實(shí)現(xiàn)線程與定時器的方法_C 語言
- 2022-04-17 python中無法導(dǎo)入本地安裝好的第三方庫問題_python
- 2022-07-14 React?Native?Popup實(shí)現(xiàn)示例_React
- 2022-06-16 VS?Code?C++環(huán)境的搭建過程_C 語言
- 2022-04-27 幾個關(guān)于python??Pdf?技巧的分享_python
- 2022-04-23 使用matplotlib庫實(shí)現(xiàn)圖形局部數(shù)據(jù)放大顯示的實(shí)踐_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支