本指南解决了在 ASP.NET Core 应用程序中从 appsettings.json
检索值的问题。 我们将探讨常见方法和故障排除步骤。
您的Startup
类需要以下配置:
注入 IConfiguration
: 构造函数应该注入 IConfiguration
(不是 IConfigurationRoot
,已弃用):public Startup(IConfiguration configuration)
配置服务: 在 ConfigureServices
内,使用 Configuration.GetSection("AppSettings")
配置您的 AppSettings 对象:
<code class="language-csharp"> services.Configure<AppSettings>(configuration.GetSection("AppSettings"));</code>
创建一个模型类,该模型类反映 appsettings.json
中“AppSettings”部分的结构:
<code class="language-csharp">public class AppSettings { public string Version { get; set; } }</code>
将 IOptions<AppSettings>
注入控制器的构造函数中:
<code class="language-csharp">public class HomeController : Controller { private readonly AppSettings _appSettings; public HomeController(IOptions<AppSettings> appSettings) { _appSettings = appSettings.Value; } }</code>
如果 _appSettings
始终为空,请检查以下几点:
IConfiguration
注入: 确保 IConfiguration
正确注入到 Startup
构造函数中。ConfigureServices
方法以确认“AppSettings”部分的准确绑定。IOptions<AppSettings>
已正确注入到控制器构造函数中。除了 IOptions
模式之外,请考虑以下替代方案:
IConfiguration
访问:直接注入IConfiguration
并使用Configuration.GetValue<T>("key")
访问值。ConfigurationBinder
: 定义强类型模型并将 IConfiguration
实例绑定到它。这提供了类型安全性并提高了可维护性。按照这些步骤,您应该成功从 appsettings.json
检索值。 持续存在的问题需要仔细调试并彻底检查您的配置。
以上是如何从 ASP.NET Core 中的 appsettings.json 检索值?的详细内容。更多信息请关注PHP中文网其他相关文章!