首页 > 解决方案 > Get collection from settings.json

问题描述

I create some config file in json format:

{
    "SomeCollection" : [
        {
            "Val1" : "Some string",
            "Val2" : "Some string2"
        }
    ] 
}

I create object with this config:

IConfiguration config = new ConfigurationBuilder()
      .AddJsonFile("appsettings.json", true, true)
      .Build();

But how can I get list of pairs Val1 and Val2?

标签: c#visual-studio-code.net-core

解决方案


这是我的课:

using System.Collections.Generic;

namespace WebsiteAPI.Models
{
   public class CollectionInAppSettings
   {
        public IDictionary<string,string> SomeCollection { get; set; }
   }
}

这是我的应用设置:

"CollectionInAppSettings": {
    "SomeCollection": {
        "Val1": "Some string",
        "Val2": "Some string2"
    }
}

这是我在配置服务部分的 startup.cs 中的内容:

services.Configure<CollectionInAppSettings>(Configuration.GetSection("CollectionInAppSettings"));

这是虚拟 HelloController 中的内容:

    private readonly IOptions<CollectionInAppSettings> _options;

    public HelloController(IOptions<CollectionInAppSettings> options)
    {
        _options = options;
    }

    [HttpGet("[action]")]
    public IActionResult IsUp()
    {
        return Ok(_options.Value);
    }

调用端点时: https://localhost:4010/api/hello/isup

这是返回的: "someCollection":{"Val1":"Some string","Val2":"Some string2"}

这是此问题的其他一些解决方案的链接:单击此处


推荐阅读