.Net Core库类项目跨项目读取配置文件的方法

所属分类: 网络编程 / ASP.NET 阅读数: 382
收藏 0 赞 0 分享

在项目开始之前我们可以先去了解一下IConfiguration接口,.Net Core Web应用程序类似于一个控制台,当程序运行到Startup时会自动注入IConfiguration,默认读取当前.Net Core Web应用程序中的appsettings.json文件。读取当前.Net Core Web应用程序的配置文件可以自动直接注入,但如果我们需要使另一个类库项目读取到指定.Net Core Web应用程序中的配置文件,需要怎么做?凭借Asp.Net Core无处不在的“依赖注入”,我们可以在Startup执行时将读取的配置信息注入到类库项目中,之后我们可以愉快的使用配置信息了

新建一个.Net Core的类库项目和.Net Core Web应用程序,修改Web应用程序中的appsettings.json文件加入数据库连接字符串用于之后的试验。

{
 "WebConfig": {
  "OracleConnectionString": "User Id=fjh;Password=fjh_123;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)));Pooling = True;Max Pool Size = 800;Min Pool Size = 1;Connect Timeout=5;"
 },
 "Logging": {
  "LogLevel": {
   "Default": "Warning"
  }
 },
 "AllowedHosts": "*"
}

.Net Core的类库项目中新建一个静态类:ConfigurationHelper.cs

使用IConfiguration接口需要添加依赖项:Microsoft.Extensions.Configuration

using Microsoft.Extensions.Configuration;

namespace Read_Configuration_File
{
  public class ConfigurationHelper
  {
    private static IConfiguration _config;
    public static void Configure(IConfiguration config)
    {
      _config = config;
    }
    /// <summary>
    /// 根据配置文件键读取对应的值
    /// </summary>
    /// <param name="Key"></param>
    /// <returns></returns>
    public static string GetConfigValueByKey(string Key)
    {
      var value = _config[Key];
      return value;
    }
  }
}

创建一个静态字段_config用来存储配置信息,同时定义一个静态方式通过配置文件的键值获取对应的值。

.Net Core的类库项目中新建一个静态类:Utilconfig.cs

创建一个只读静态字段OracleConnectionString存储根据键值获得的配置文件的值

namespace Read_Configuration_File
{
  public static class UtilConfig
  {
    public static string OracleConnectionString => ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString") == null ? "" : string.Format(ConfigurationHelper.GetConfigValueByKey("WebConfig:OracleConnectionString"));
  }
}

最关键的一步,修改.Net Core Web应用程序中的Startup.cs

我们需要将配置信息注入到类库项目,需要使用ConfiurationHelper类下的静态方法。在创建的.Net Core Web应用程序的Startup文件中调用Configure方法,使用前不要忘了先引用类库项目

到这里为止,我们可以调用静态类UtilConfig中的静态只读字段OracleConnectionString愉快的使用.Net Core Web应用程序的配置信息。

接下来我们来验证一下项目是否成功

在.Net Core库类项目中新建一个类:ConnectionRead

创建一个静态方法GetConnectionStr()返回获取到的配置文件信息

namespace Read_Configuration_File
{
  public class ConnectionRead
  {
    /// <summary>
    /// 定义一个静态方法获取连接字符串
    /// </summary>
    /// <returns></returns>
    public static string GetConnectionStr()
    {
      var connStr = UtilConfig.OracleConnectionString;
      return connStr;
    }
  }
}

项目结构

在.Net Core Web项目中的HomeController主页中调用这个静态方法,如果能正确读取到配置文件的值,那项目就成功了

修改一下主页

执行文件我们可以发现主页上显示了我们想要读取的数据库连接的配置信息。Nice!成功

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

开源跨平台运行服务插件TaskCore.MainForm

这篇文章主要为大家详细介绍了开源跨平台运行服务插件TaskCore.MainForm的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

CKEditor自定义按钮插入服务端图片

这篇文章主要为大家详细介绍了CKEditor自定义按钮插入服务端图片的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Asp.net Web Api实现图片点击式图片验证码功能

现在验证码的形式越来越丰富,今天要实现的是在点击图片中的文字来进行校验的验证码。下面通过本文给大家分享Asp.net Web Api实现图片点击式图片验证码功能,需要的的朋友参考下吧
收藏 0 赞 0 分享

WPF实现ScrollViewer滚动到指定控件处

这篇文章主要为大家详细介绍了WPF实现ScrollViewer滚动到指定控件处,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

WPF实现带全选复选框的列表控件

这篇文章主要为大家详细介绍了WPF实现带全选复选框的列表控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Asp.net MVC 中利用jquery datatables 实现数据分页显示功能

这篇文章主要介绍了Asp.net MVC 中利用jquery datatables 实现数据分页显示功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

asp.net 利用NPOI导出Excel通用类的方法

本篇文章主要介绍了asp.net 利用NPOI导出Excel通用类的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

VS2015自带LocalDB数据库用法详解

这篇文章主要为大家详细介绍了VS2015自带LocalDB数据库的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SignalR Self Host+MVC等多端消息推送服务(一)

这篇文章主要为大家详细介绍了SignalR Self Host+MVC等多端消息推送服务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SignalR Self Host+MVC等多端消息推送服务(二)

这篇文章主要为大家详细介绍了SignalR Self Host+MVC等多端消息推送服务的第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多