Netcore-弱いタイプと強いタイプでjsonプロファイルを読み込む

1572 ワード

弱いタイプの読み取り:
1.コロンmysql:host
2.GetSection("mysql")["host"]
強いタイプの読み取り:
1.GetValue
2.ソリッドクラスBind,Getにマッピングする構成
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {


            IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("appsettings.json").Build();

            //     
            //var info = configuration["shopidlist:2"];
            //var info = configuration.GetSection("shopidlist").GetSection("2").Value;
            //Console.WriteLine(info);

            //     
            var info = configuration.GetValue("mysql:port",0);
            Console.WriteLine(info);

            //Rootobject rootobject = new Rootobject();
            //configuration.Bind(rootobject);

            var rootobject = configuration.Get();
            Console.ReadLine();
        }
    }

    public class Rootobject
    {
        public Mysql mysql { get; set; }
        public int[] shopidlist { get; set; }
    }

    public class Mysql
    {
        public string host { get; set; }
        public string port { get; set; }
    }


}
{
  "mysql": {
    "host": "192.168.23.1",
    "port": "3306"
  },
  "shopidlist": [10,20,30,40]
  
}