如何在ASP.NET Core 6控制器中访问appsettings.json中的值。
如何在ASP.NET Core 6控制器中访问appsettings.json中的值。
我从 Visual Studio 2022 提供的默认模板中创建了一个全新的ASP.NET Core Web API项目(.NET 6)。之后,我在appsettings.json文件中添加了一个配置键,并尝试在controller类中访问它,但无法成功。\n我的appsettings.json文件如下:\n{\n \"Logging\": {\n \"LogLevel\": {\n \"Default\": \"Information\",\n \"Microsoft.AspNetCore\": \"Warning\"\n }\n },\n \"AllowedHosts\": \"*\",\n \"ProjectName\" : \"VeryFunny\"\n}\ncontroller代码如下:\npublic class WeatherForecastController : ControllerBase\n{\n private static readonly string[] Summaries = new[]\n {\n \"Freezing\", \"Bracing\", \"Chilly\", \"Cool\", \"Mild\", \"Warm\", \"Balmy\", \"Hot\", \"Sweltering\", \"Scorching\"\n };\n private readonly IConfiguration _configuration;\n public WeatherForecastController(IConfiguration configuration)\n {\n _configuration = configuration;\n }\n [HttpGet(Name = \"GetWeatherForecast\")]\n public IEnumerable
问题的原因是需要从appsettings.json文件中访问值,在ASP.NET Core 6控制器中。解决方法是使用构造函数中的IConfiguration接口来访问appsettings.json文件。
下面是一个示例代码:
public class HomeController : Controller { private readonly IConfiguration _config; private string ConnectionString; public HomeController(IConfiguration configuration) { _config = configuration; ConnectionString = _config["Configurations:ConnectionString"]; Console.WriteLine(ConnectionString); } }
在这个示例中,使用IConfiguration接口从appsettings.json文件中访问了连接字符串。appsettings.json文件的代码如下:
"Configurations": {
"ConnectionString": "MyDBConnectionStringExample;"
}
如果需要处理数据库通信,建议创建一个单独的类来处理,否则以上方法可以正常工作。希望对大家有所帮助。
这是一个很棒的答案,正是我所需要的。感谢你写下这个答案。我之前无法弄清如何在我的控制器中获取配置值。
非常感谢您留下反馈,我很高兴能够帮助到您。
问题的原因是在ASP.NET Core 6控制器中如何从appsettings.json文件中访问值。解决方法是使用`.GetValue
首先,我们需要在控制器的构造函数中注入`IConfiguration`接口,并将其赋值给私有字段`_configuration`。然后,在我们需要访问配置值的地方,可以使用`_configuration.GetValue
以下是一个示例代码,演示了如何从appsettings.json中获取配置值:
private readonly IConfiguration _configuration; private readonly ILogger_logger; public WeatherForecastController(ILogger logger, IConfiguration configuration) { _logger = logger; _configuration = configuration; } [HttpGet(Name = "GetWeatherForecast")] public IEnumerable Get() { return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = _configuration.GetValue ("ProjectName") }) .ToArray(); }
在这个例子中,我们通过调用`_configuration.GetValue
如果您需要进一步了解如何从appsettings.json中读取值以及模型绑定的更详细信息,您可以参考以下链接:
- [https://stackoverflow.com/a/58432834/3559462](https://stackoverflow.com/a/58432834/3559462)
- [https://qawithexperts.com/article/asp-net/read-values-from-appsettingsjson-in-net-core/467](https://qawithexperts.com/article/asp-net/read-values-from-appsettingsjson-in-net-core/467)
希望这些信息对您有帮助。如果您遇到任何问题,请随时更新您的问题,以便我们能够提供更具体的帮助。