在ASP。网络核心类库项目中读取配置文件的方法

  介绍

小编给大家分享一下在ASP。网络核心类库项目中读取配置文件的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>。网络核心类库项目读取JSON配置文件

在应用程序目录下添加JSON文件是进行如下配置:

var  builder =, new  ConfigurationBuilder ()   ,,,.SetBasePath (env.ContentRootPath)   ,,,.AddJsonFile (“appsettings.json",,可选:,真的,,reloadOnChange:,真的)   ,,,.AddJsonFile(美元“appsettings。{env.EnvironmentName} .json",,可选:,真的)   ,,,.AddEnvironmentVariables ();   ,,,Configuration =, builder.Build ();

然后读取配置文件的节点,如下:

public  void  ConfigureServices (IServiceCollection 服务)   {才能      ,,services.Configure (Configuration.GetSection (“JeffckySettings"));   ,,……   以前,,}

但是如果项目是在类库中呢,当然我们也可以将配置值放在应用程序下的appsettings.json中,但是为了不让其json文件中看起来显得非常臃肿同时在类库中的配置数据我们理应放在类库中来统一管理,所以我们得另外再想方案,总不能在类库中建立startup.cs类,再来实例化配置吧,这样想想应该也是可以,我没尝试过,难道就没有很简单的方式么,难道就不能像。net核心之前用类来读取web . config我们只需要给出键而得到值吗?或者说通过强类型配置来统一管理配置数据,这个才应该是我们尝试的方向。好了,说了这么多,我们就开干。我们首先来复习下。net核心中是如何获取应用程序路径的。

<强>。网络核心获取应用程序路径

在。净4。X之前获取当前应用程序根目录路径和名称可以通过如下获取

var  basePath =, AppDomain.CurrentDomain.BaseDirectory;   var  appName =, 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 ()

在类库项目中我们利用强类型配置来实现读取配文件数据,我们首先需要下载如下扩展。

在ASP。网络核心类库项目中读取配置文件的方法

在ConfigurationBuilder类中如下一个加添加方法:

////,才能摘要://,才能,Adds  a  new  configuration 源。   ,////才能,参数://才能,来源://,,,,,configuration  source 用添加。   ,////,才能返回结果://才能,从而same  Microsoft.Extensions.Configuration.IConfigurationBuilder。   public 才能;IConfigurationBuilder 添加(IConfigurationSource 源);

对于AddJsonFile扩展方法来添加JSON文件名,文件路径已经通过SetBasePath()方法来实现,一切配置都是基于IConfigurationBuilder接口,其中就有一个JsonConfigurationSource类,实现如下:

//,//摘要:   ,//,Represents  a  JSON  file  as  an  Microsoft.Extensions.Configuration.IConfigurationSource。   ,public  class  JsonConfigurationSource : FileConfigurationSource   ,{   public 才能JsonConfigurationSource ();      ,////,才能摘要://才能,Builds 从而Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider//才能,for 却;能够源。   ,////才能,参数://,才能构建器://才能,从而Microsoft.Extensions.Configuration.IConfigurationBuilder。   ,////,才能返回结果://才能,A  Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider   public 才能;override  IConfigurationProvider 构建(IConfigurationBuilder  builder);   以前,}

我们再看其父类就有一个添加JSON文件路径的方法,如下:

在ASP。网络核心类库项目中读取配置文件的方法

在ASP。网络核心类库项目中读取配置文件的方法