.Net Core中配置操作

         在.Net core 中不像 .Net FrameWork 是通过配置文件 webConfig 来操作的,而是通过 Json 文件来进行配置读取的。

         1.首先先在 Nuget 中加载所需的程序包  Microsoft.AspNetCore.All  或者( Microsoft.Extensions.Configuration 和 Microsoft.Extensions.Configuration.Json程序包)

         2.NET Core配置文件为 appsettings.json,名称要用这个默认的

         3.使用方式:

//配置信息
{
"Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "TestConnection": "Server=.;Database=OWNDB;User ID=sa;Password=123456;Trusted_Connection=False;" }, "Appsettings": { "SystemName": "PDF .NET CORE", "Date": "2017-07-23", "Author": "PDF" },

    "BaseInfo": {
    "ClientId": "wxkjwdg",
    "ClientSecret": "3a1e0f2e466f4f2eb245a4998b11a4b5"
   },

  "ServiceUrl": "http://www.cnblogs.com/chuankang/"

}

这是用来控制操作配置文件的类

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;

namespace NetCore.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();            
        }
    }
}
//这是专门读取数据库信息的方法,注意配置文件中一定要用 ConnectionStrings作一级菜单 否则读不到
AppConfigurtaionServices.Configuration.GetConnectionString("TestConnection"); 
//得到 Server=.;Database=OWNDB;User ID=sa;Password=123456;Trusted_Connection=False;
读取一级配置节点配置

AppConfigurtaionServices.Configuration["ServiceUrl"];
//得到 http://www.cnblogs.com/chuankang/
读取二级子节点配置

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

也可以强类型绑定配置信息,更加便捷

    /// <summary>
    /// 基础配置
    /// </summary>
    public class BaseInfo
    {
        public string ClientId { get; set; }

        public string ClientSecret { get; set; }
    }


  //读取基本信息
   var baseInfo = new BaseInfo();
   AppConfigurtaionService.Configuration.GetSection("BaseInfo").Bind(baseInfo);

 注意,如果AppConfigurtaionServices类中抛出FileNotFoundException异常,说明目录下未找到appsettings.json文件,这时请在项目appsettings.json文件上右键——属性——将“复制到输出目录”项的值改为“如果较新则复制”即可。

 

原文地址:https://www.cnblogs.com/wang-min/p/12551912.html