Welcome

首页 / 网页编程 / ASP.NET / .net core 读取appsettings 的配置

AppSettings.json示例如下

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ConnectionStrings": {
    "CxyOrder": "Server=LAPTOP-AQUL6MDE\\MSSQLSERVERS;Database=CxyOrder;User ID=sa;Password=123456;Trusted_Connection=False;"
  },
  "Appsettings": {
    "SystemName": "PDF .NET CORE",
    "Date": "2017-07-23",
    "Author": "PDF"
  },
  "ServiceUrl": "https://www.baidu.com/getnews"
}

创建读取类:

using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Configuration.Json;namespace NetCoreOrder.Common
{    /// <summary>
    /// 读取配置文件    /// </summary>
    public class AppConfigurtaionServices
    {        public static IConfiguration Configuration { get; set; }        static AppConfigurtaionServices()
        {            //ReloadOnChange = true 当appsettings.json被修改时重新加载            
            Configuration = new ConfigurationBuilder()
              .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
              .Build();            
        }
    }
}

读取一级配置节点配置:

AppConfigurtaionServices.Configuration["ServiceUrl"];
//得到 https://www.baidu.com/getnews

读取二级子节点配置

AppConfigurtaionServices.Configuration["Appsettings:SystemName"];
//得到 PDF .NET CORE
AppConfigurtaionServices.Configuration["Appsettings:Author"];
//得到 PDF



以下是我自己写的类及调用方式:

appsettings.json

{

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

      "Microsoft.Hosting.Lifetime": "Information"

    }

  },

  "ConnectionStrings": {

    "SqlServerContext": "Server=.;Data Source=(local);Database=NetCMS;uid=sa;pwd=sa123456"

  },

  "AllowedHosts": "*"

}


AppSettings.cs类

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.Configuration.Json;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;


namespace ASPCoreDemo.Models

{

    public class AppSetting

    {

        public static IConfiguration Configuration { get; set; }

        static AppSetting()

        {

            Configuration = new ConfigurationBuilder()

            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })

            .Build();

        }

    }

}

DbContext子类调用示例

using Microsoft.EntityFrameworkCore;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;


namespace ASPCoreDemo.Models

{

    public class DataContext : DbContext

    {

        public DataContext()

        {

        }

        public DataContext(DbSet<China> chinas)

        {

            China = chinas;

        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

        {

            optionsBuilder.UseSqlServer(AppSetting.Configuration["ConnectionStrings:SqlServerContext"]);

        }

        public DbSet<China> China { get; set; }

    }

}