.net core config读取
2024-10-02 01:07:22
最简单的方式
引用
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json
json文件
新建一个ConfigTest.json
右键属性,设置为“始终复制”
数据如下:
{
"TotalCount": 2,
"Students": [
{
"Name": "Lili",
"Sex": "女"
},
{
"Name": "Tom",
"Sex": "男"
}
]
}
读取json
var builder = new ConfigurationBuilder();
builder.AddJsonFile("ConfigTest.json");
var config = builder.Build();
Console.WriteLine(config["TotalCount"]);
//索引
Console.WriteLine(config["Students:0:Name"]);
Console.WriteLine(config["Students:0:Sex"]);
Console.WriteLine(config["Students:1:Name"]);
Console.WriteLine(config["Students:1:Sex"]);
示例代码
https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfig方法
Bind读取配置
引用
第一个示例中的引用也要添加
Microsoft.Extensions.Configuration.Binder
读取json
var builder = new ConfigurationBuilder()
.AddJsonFile("ConfigTest.json");
ConfigTest configTest=new ConfigTest();
var config = builder.Build();
//Microsoft.Extensions.Configuration.Binder
config.Bind(configTest);
Console.WriteLine(configTest.TotalCount);
Console.WriteLine(configTest.Students[0].Name);
Console.WriteLine(configTest.Students[0].Sex);
Console.WriteLine(configTest.Students[1].Name);
Console.WriteLine(configTest.Students[1].Sex);
示例代码
https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfigByBind方法
Option
引用
第一个示例中的引用也要添加
Microsoft.Extensions.Options
在appsettings.json中添加测试数据
{
"MyData": {
"TotalCount": 2,
"Students": [
{
"Name": "Lili",
"Sex": "女"
},
{
"Name": "Tom",
"Sex": "男"
}
]
}
}
实体类需要实现IOptions<T>
public class ConfigTest:IOptions<ConfigTest>
{
public int TotalCount { get; set; }
public List<Student> Students { get; set; }
public ConfigTest Value => this;
}
读取json
public class ConfigController : Controller
{
private ConfigTest _configTestByOptions;
private readonly IConfiguration _configuration;
public ConfigController(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult Index()
{
//GetSection:必须先读节点
//ConfigTest实现接口IOptions<ConfigTest>
_configTestByOptions = _configuration.GetSection("MyData").Get<ConfigTest>();
return View();
}
}
注意
CreateDefaultBuilder方法已经读取appsettings.json,所以在这个示例中,我们没有调用AddJsonFile方法添加appsettings.json文件,而是直接读取appsettings.json中的数据即可
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
示例代码
热更新
定义
optional:该配置文件是否可选,如果optional=false,加载失败会抛出异常
reloadOnChange:文件被修改时是否重新加载,热更新就是这个,设置为true即可
public static IConfigurationBuilder AddJsonFile(this IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange)
注意,热更新是修改bin目录下的生成的文件
示例代码
https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfigHotUpdate方法
最新文章
- MessageBox.Show()的各种用法
- 【Android】1.开发环境搭建
- 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\41c191fd\ff9345c5\App_Web_login.cshtml.65793277
- Twitter API升级至1.1
- GitBook – 使用 GitHub 和 Markdown 制作书籍
- sphinx 全配置
- 笔记本显示器坏了,从硬盘安装win7系统
- Javascript注意事项一【防止浮点数溢出】
- yii2源码学习笔记(二十)
- 今天,安装了一个GANGLIA玩玩,以后再测试NAGIOS吧。
- Effective Java实作Comparable - 就是爱Java
- 力挺8天入门wpf【转载】
- 国内下载比较快的Maven仓库镜像
- [redis] <;<;The little Redis book>;>;的读书笔记
- PowerShell 使用.NetFramework
- 【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置
- MySQL--4操作数据表中的记录小结
- kombu源码Producer收获一
- ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set
- NSIS 资料
热门文章
- 【34.88%】【codeforces 569C】Primes or Palindromes?
- tomcat 启动项目时出现 ZipException: error in opening zip file
- [SCSS] Use Standard Built-in SCSS Functions for Common Operations
- 指针知识梳理6-const与指针
- 手把手教你完成App支付JAVA后台-支付宝支付JAVA
- php标准库中的优先队列SplPriorityQueue怎么使用?(继承)
- Ajax详解及使用Ajax时的返回值类型有哪些?
- 雷观(十):管理自己的任务列表(TodoList)很重要
- zookeeper 分布式安装/配置/启动
- JAVA SE回顾及思考(1)——面向对象的特点