ASP.NET Core Get Json Array using IConfiguration

后端 未结 14 2102
失恋的感觉
失恋的感觉 2020-11-30 21:49

In appsettings.json

{
      \"MyArray\": [
          \"str1\",
          \"str2\",
          \"str3\"
      ]
}

In Startup.cs

14条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-30 22:03

    appsettings.json:

    "MySetting": {
      "MyValues": [
        "C#",
        "ASP.NET",
        "SQL"
      ]
    },
    

    MySetting class:

    namespace AspNetCore.API.Models
    {
        public class MySetting : IMySetting
        {
            public string[] MyValues { get; set; }
        }
    
        public interface IMySetting
        {
            string[] MyValues { get; set; }
        }
    }
    

    Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        ...
        services.Configure(Configuration.GetSection(nameof(MySetting)));
        services.AddSingleton(sp => sp.GetRequiredService>().Value);
        ...
    }
    

    Controller.cs

    public class DynamicController : ControllerBase
    {
        private readonly IMySetting _mySetting;
    
        public DynamicController(IMySetting mySetting)
        {
            this._mySetting = mySetting;
        }
    }
    

    Access values:

    var myValues = this._mySetting.MyValues;
    

提交回复
热议问题