首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET核心-如何注入IOptionsMonitor<T[]>

ASP.NET核心-如何注入IOptionsMonitor<T[]>
EN

Stack Overflow用户
提问于 2019-06-12 15:04:14
回答 1查看 2.7K关注 0票数 0

如何将IOptionsMonitor<T[]>注入控制器?

在appsettings.json中

代码语言:javascript
复制
{
      "MyArray": [
       {
          "Name": "Name 1",
          "SomeValue": "Value 1",
       },
       {
          "Name": "Name 2",
          "SomeValue": "Value 2",
       }
      ]
}

在Startup.cs中

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
     services.AddOptions();
     services.Configure<MyOptions[]>(Configuration.GetSection("MyArray"));
}

在HomeController中

代码语言:javascript
复制
public class HomeController : Controller
{
    private readonly MyOptions[] myOptions;
    public HomeController(IOptionsMonitor<MyOptions[]> myOptions)
    {
        this.myOptions = myOptions.CurrentValue;
    }
}

我得到了Unable to resolve service for type 'Microsoft.Extensions.Options.IOptionsMonitor`1[MyOptions[]]' while attempting to activate 'Api.Controllers.HomeController'.异常。

我可以通过configuration.GetSection("MyArray").Get<MyOptions[]>()访问配置,它可以工作,但我想将它作为构造函数参数注入。

EN

回答 1

Stack Overflow用户

发布于 2021-11-16 14:06:34

但可能对其他人有帮助,只需使用

代码语言:javascript
复制
services.Configure<List<SingleObject>>(configuration.GetSection($"Parrent:Array"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56556397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档