ASP.NET 读取配置文件
在 ASP.NET Core 应用程序开发中。配置信息通常存储在 appsettings.json 文件中,可能包含各种数据结构,如简单的键值对、数组或嵌套对象。本文将介绍如何在 ASP.NET Core 中使用 IConfiguration 接口来访问和操作应用程序配置信息的不同类型,包括获取简单键值对、数组中的元素以及嵌套对象的属性。
示例:在控制器中操作应用程序配置信息
假设我们有以下的 appsettings.json 文件内容:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"System": "Error"
}
},
"key": "value",
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"
},
"Redis": {
"Enabled": false,
"Instance": "Malus",
"ConnectionString": "127.0.0.1:6379,password=123456,DefaultDatabase=6"
},
"Emails": ["email1@example.com", "email2@example.com", "email3@example.com"]
}
创建一个 ASP.NET Core 控制器来演示如何在控制器中访问和操作这些配置信息。
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace YourNamespace.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ConfigurationController : ControllerBase
{
private readonly IConfiguration _configuration;
public ConfigurationController(IConfiguration configuration)
{
_configuration = configuration;
}
[HttpGet]
public IActionResult GetConfigurationValues()
{
// 获取嵌套对象的属性
var logLevelDefault = _configuration["Logging:LogLevel:Default"];
var logLevelMicrosoft = _configuration["Logging:LogLevel:Microsoft"];
var logLevelSystem = _configuration["Logging:LogLevel:System"];
// 获取简单键值对
var key = _configuration["key"];
// 获取连接字符串
var defaultConnectionString = _configuration.GetConnectionString("ConnectionStrings:DefaultConnection");
// 获取 Redis 配置信息
var redisEnabled = _configuration.GetValue<bool>("Redis:Enabled");
var redisInstance = _configuration["Redis:Instance"];
var redisConnectionString = _configuration["Redis:ConnectionString"];
// 获取数组中的元素
var emailsArray = _configuration.GetSection("Emails").Get<string[]>();
var firstEmail = _configuration.GetValue<string>("Emails:0");
var secondEmail = _configuration.GetValue<string>("Emails:1");
return Ok(new
{
LogLevelDefault = logLevelDefault,
LogLevelMicrosoft = logLevelMicrosoft,
LogLevelSystem = logLevelSystem,
Key = key,
DefaultConnectionString = defaultConnectionString,
RedisEnabled = redisEnabled,
RedisInstance = redisInstance,
RedisConnectionString = redisConnectionString
EmailsArray = emailsArray,
FirstEmail = firstEmail,
SecondEmail = secondEmail,
});
}
}
}

浙公网安备 33010602011771号