ASP.净芯注入设置
本文关键字:设置 注入 ASP | 更新日期: 2023-09-27 18:16:49
Net Core可以使用IOptions<T>
将配置值注入到类中。
如果我有以下appsettings.json
配置:
{
"CustomSection": {
"Foo": "Bar"
},
"RootUrl": "http://localhost:12345/"
}
我可以将IOptions<CustomSection>
注入我的构造函数(假设我已经定义了CustomSection
类)并读取Foo
属性。
我如何注入RootUrl
设置到我的构造函数或这是不支持的?
创建如下类
public class AppSettings {
public string RootUrl{ get; set; }
}
将其注入到startup.cs中,如下所示。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
在你的控制器中使用它,如下所示。
public CustomerController(IOptions<AppSettings> appSettings)
{
[variable] = appSettings.Value;
}
让我知道这是否适合你
从文档:
不能使用选项和配置对象选项模式允许使用自定义选项类来表示一组相关设置。一个类需要对每个设置都有一个公共的读写属性,并且需要一个不带任何参数的构造函数(例如默认构造函数),以便作为选项类使用。
这意味着您需要生成一个类来读取它的配置值。但是在您的示例中,RootUrl
不能通过类来构造。