我敢肯定这一定是重复的,但是我已经搜索了太久了,仍然找不到答案。
我想从此处访问配置选项(从json文件访问,尽管我认为问题与来源无关)
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Run(async context =>
{
// Get my config values here and do something with them
await Task.CompletedTask;
});
}
我可以使用var x = Config.GetValue<string>("AppSettings:MySetting:0");
,但是因为它是一个列表,所以我必须创建一个循环并检索值,直到得到空值之类的东西为止,所以我宁愿做IOptions事情,也可以将其以强烈的方式加载为我输入课程。我在ConfigureServices中有以下代码:
services.AddOptions();
services.Configure<AppSettings>(Config.GetSection("AppSettings"));
但是我只是不知道如何从Configure方法中获取在那里注册的对象。
我还尝试在调试时检查Config.GetSection("AppSettings")
的值,发现在json提供程序下可以看到我的设置。但是,尽管在检查器中可用,但是我看不到如何直接访问列表。也就是说,我可以使用GetValue()一次访问列表中的一个值,但我不能仅将整个列表作为一个值来访问。
答案 0 :(得分:0)
就像经常发生的那样,在这里发表文章后,我终于弄清了我想要的东西。基本上,对于我的方案,我不需要IOptions或与DI有关的任何其他操作。我只需要使用.Bind()
来将设置绑定到我的类的实例:
AppSettings a = new AppSettings();
Config.GetSection("AppSettings").Bind(a);