sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

.NET Core读取配置文件
https://www.jb51.net/article/254440.htm

1. 说明

默认情况下读取配置Configuration的默认优先级:ConfigureAppConfiguration(自定义读取)>CommandLine(命令行参数)>Environment(环境变量)>appsetting.json(默认配置文件)>UseSetting的顺序

原因:读取配置的顺序是后来者居上模式,后来注册的会优先被读取到。

2. 获取配置

2.1 获取单个项

1
2
3
4
5
6
7
8
9
//值是数组
 var a0 = Configuration.GetSection("RabbitMQ:Hosts").Get<string[]>();
//获取数组第一个
 var a0 = Configuration["RabbitMQ:Hosts:0"];
//值是int类型
 var a1 = Configuration.GetValue<int>("RabbitMQ:Port");
//值是字符串
var a2 = Configuration.GetValue<string>("RabbitMQ:UserName");
var a2 = Configuration["RabbitMQ:UserName"];

2.2 映射项到模型类

模型类

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
3
4
5
6
7
"RabbitMQ": {
  "Hosts": [ "xxx.xxx.xxx.xxx" ],
  "Port": 5672,
  "UserName": "admin",
  "Password": "xxxxxx",
  "VirtualHost": "myQueue"
}

2.2.1 注入模型类

1
2
3
4
5
6
7
8
//startup配置
services.Configure<RabbitMQConfig>(Configuration.GetSection(RabbitMQConfig.RabbitMQ));
//获取数据
private readonly RabbitMQConfig _rabbitMQConfig;
public WeatherForecastController(IOptions<RabbitMQConfig> options)
{
    _rabbitMQConfig = options.Value;
}

2.2.2 映射项到模型类

1
2
3
4
var info = new RabbitMQConfig();
Configuration.Bind(RabbitMQConfig.RabbitMQ, info);
//or                       
Configuration.GetSection(RabbitMQConfig.RabbitMQ).Bind(info);

到此这篇关于.NET Core读取配置文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

posted on 2023-01-07 23:39  sunny123456  阅读(174)  评论(0编辑  收藏  举报