建设银行官方个人网站,做美食网站的目的,大同网站建设推广,福州做网站的公司前言.NET Core 在配置文件的操作上相对于.NET Framework做了不少改变#xff0c;今天来聊一聊。关于Configuration的Package都是以Microsoft.Extensions.Configuration开头的支持多种方式的配置#xff0c;包括内存、Json文件、XML文件等等#xff0c;今天我们主要用Json格式… 前言.NET Core 在配置文件的操作上相对于.NET Framework做了不少改变今天来聊一聊。关于Configuration的Package都是以Microsoft.Extensions.Configuration开头的支持多种方式的配置包括内存、Json文件、XML文件等等今天我们主要用Json格式文件配置来演示。开始新建一个ConsoleApp这里为了方便演示就用控制台程序来演示了而不用ASP.NET Core添加两个PackageInstall-Package Microsoft.Extensions.Configuration -Version 2.0.1Install-Package Microsoft.Extensions.Configuration.Json -Version 2.0.1添加Json配置文件读取配置var builder new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(appsettings.json)var config builder.Build();//读取配置Console.WriteLine(config[Alipay:AppId]);
Console.WriteLine(config[Alipay:PriviteKey]);我们的Json文件内容如下{Alipay: {AppId: 20185555,PriviteKey: dasfdafafafa} }我们通过ConfigurationBuilder对象来创建ConfigurationRoot对象并用其来读取配置。SetBasePath()方法是用来设置我们配置对象需要的配置文件的基础路径比如我们将基础路径设置为C:\ConsoleApp那么他读取我们的配置文件appsettings.json的路径将是C:\ConsoleApp\appsettings.json运行多次调用 AddJsonFile 方法会发生什么我们新建一个appsettings.Test.json文件添加如下内容:{Alipay: {AppId: 20185555Testss,PriviteKey: dasfdafafafaTestss} }然后修改一下代码var builder new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(appsettings.json).AddJsonFile(appsettings.Test.json);可以看见我们向ConfigurationBuilder对象设置了两次Json文件看一下运行效果可以得出结论读取配置的时候会选择最后添加的文件。那么我们前一个文件去哪了呢我们的ConfigurationRoot对象有一个Providers属性存储了我们添加的文件信息我们可以遍历它foreach (var provider in config.Providers)
{provider.TryGet(Alipay:AppId, out string val);Console.WriteLine(val);
}运行可以看出我们两个文件的值都被读取到了配置重载我们的配置文件可能会被更改那么我们如何获取最新的配置我们在添加文件的时候可以将一个名为reloadOnChange的参数设置为true那么当我们的文件发生更改时就会重新载入配置到内存中来然后我们获取到的配置就行最新的。我们读取配置的时候并不是每次读取都是从文件里面读取而是配置文件的所有配置信息都会被加载到内存中来我们每次从内存读取就行了。var builder new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(appsettings.json).AddJsonFile(appsettings.Test.json,true,reloadOnChange:true);var config builder.Build();//读取配置Console.WriteLine(config[Alipay:AppId]);
Console.WriteLine(config[Alipay:PriviteKey]);Console.WriteLine(更改文件之后按下任意键);
Console.ReadKey();Console.WriteLine(change:);
Console.WriteLine(config[Alipay:AppId]);
Console.WriteLine(config[Alipay:PriviteKey]);Console.ReadKey();我们看一下效果今天就到这里了Demo:https://github.com/stulzq/BlogDemos/tree/master/ConfigurationTest原文http://www.cnblogs.com/stulzq/p/8570496.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com