介绍
这篇文章给大家分享的是有关ASP。网络核心类库项目中实现读取配置文件的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
最近有朋友问如何在。NET核心类库中读取配置文件,当时一下蒙了,这个提的多好,我居然不知道,于是这两天了解了相关内容才有此篇文章的出现,正常来讲我们在应用程序目录下有个appsettings.json文件对于相关配置都会放在这个json文件中,但是要是我建立一个类库项目,对于一些配置比如密钥或者其他需要硬编码的数据放在json文件中,在。NET核心之前配置文件为web . config并且有相关的类来读取节点上的数据,现如今在。NET核心中为json文件,那么我们该如何做?本文就此应运而生。
在应用程序目录下添加json文件是进行如下配置:
var builder=new ConfigurationBuilder () .SetBasePath (env.ContentRootPath) .AddJsonFile (“appsettings.json"可选:真的,reloadOnChange:真正的) .AddJsonFile ($“appsettings。{env.EnvironmentName} .json",可选:真正的) .AddEnvironmentVariables (); 配置=builder.Build ();
然后读取配置文件的节点,如下:
var basePath=AppDomain.CurrentDomain.BaseDirectory; var浏览器名称=AppDomain.CurrentDomain.ApplicationIdentity.FullName;
当然也可以通过如下来获取应用程序根目录而不是得到本目录
Directory.GetCurrentDirectory ()
在。net核心中获取本目录路径通过如下来获取更加简洁。
AppContext.BaseDirectory
在。净4。X之前获取应用程序集名称通过如下来获取:
Assembly.GetEntryAssembly () . getname () . name;
在。net中核心通过如下来获取:
var name=typeof (T) .GetTypeInfo () .Assembly.GetName () . name;
版本通过如下来获取(. net核心也一样):
Assembly.GetEntryAssembly () . getname () .Version.ToString ()
在类库项目中我们利用强类型配置来实现读取配文件数据,我们首先需要下载如下扩展。
在ConfigurationBuilder类中如下一个加添加方法:
////摘要://添加一个新的配置源。////参数://来源://添加的配置源。////返回结果://Microsoft.Extensions.Configuration.IConfigurationBuilder相同。 公共IConfigurationBuilder添加(IConfigurationSource源);
对于AddJsonFile扩展方法来添加JSON文件名,文件路径已经通过SetBasePath()方法来实现,一切配置都是基于IConfigurationBuilder接口,其中就有一个JsonConfigurationSource类,实现如下:
////摘要://代表一个作为Microsoft.Extensions.Configuration.IConfigurationSource JSON文件。 公开课JsonConfigurationSource: FileConfigurationSource { 公共JsonConfigurationSource ();////摘要://构建Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider//源。////参数://构建器://Microsoft.Extensions.Configuration.IConfigurationBuilder。////返回结果://一个Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider 公共覆盖IConfigurationProvider构建(IConfigurationBuilder builder); }
我们再看其父类就有一个添加JSON文件路径的方法,如下: