在.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文件上右键——属性——将“复制到输出目录”项的值改为“如果较新则复制”即可。