.NETCore和.NET5 MVC解析获取appsettings.json数据
一、直接取值
appsetting.json配置如下
JavaScript 全选
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"MQTTConfig": {
"Enable": true,
"ClientID": "***",
"Server": "***",
"Port": 0,
"UserName": "*",
"Password": "***",
"UseBytes": false
}
}
使用 Configuration.GetValue 方法获取
在 startup.cs
中,获取值,然后存储全局变量中
参考代码如下,ConfigureServices
方法或者 Configure
方法中都可以
C# 全选
MQTTConfig.ClientID = Configuration.GetValue<string>("MQTTConfig:ClientID");
MQTTConfig.Server = Configuration.GetValue<string>("MQTTConfig:Server");
MQTTConfig.Port = Configuration.GetValue<int>("MQTTConfig:Port");
MQTTConfig.UserName = Configuration.GetValue<string>("MQTTConfig:UserName");
MQTTConfig.Password = Configuration.GetValue<string>("MQTTConfig:Password");
二、解析为对象模型
appsettings.json 数据如下
JavaScript 全选
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"Users": [
{
"UserName": "***",
"Password": "***"
},
{
"UserName": "***",
"Password": "***"
},
{
"UserName": "***",
"Password": "***"
}
]
}
新建对象模型
C# 全选
public class UserModel {
public string UserName { get; set; }
public string Password { get; set; }
}
在 Startup.cs 方法名ConfigureServices
中添加代码
C# 全选
services.Configure<List<UserModel>>(Configuration.GetSection("Users"));
完整代码
C# 全选
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// 添加 User 模型解析
services.Configure<List<UserModel>>(Configuration.GetSection("Users"));
}
在控制器中使用配置数据
C# 全选
public class HomeController : ControllerBase
{
private readonly List<UserModel> _Users;
public HomeController(IOptions<List<UserModel>> options)
{
// appsettings.json 配置的用户对象
_Users = options.Value;
}
}
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 管理员