大多数情况,我们开发的程序中都含有很多个类库和文件夹,有时候,我们会遇到程序中的类库需要获取配置文件的信息的情况。

像dapper 中需要使用连接字符串的时候,那么我们一直从主程序中传值这是个不好的方式,所以我特地百度了好久,大部分都不是很完美,

所以今天我们来介绍的就是一种很方便的方式了。

首先我们新建一个储存数据的类:

    public class AppSetting
{
public string ConnectionString{ get; set; }
}

我这里是获取连接字符串,所以就有一个连接字符串的属性。

然后我们可以新建一个公共类,然后通过属性注入获取环境配置,像Development 的appsettings,再进入到appsettings.Development.json获取数据:

    public  class ConfigurationHelper
{
public IConfiguration config { get; set; } public ConfigurationHelper()
{
IHostingEnvironment env = MyServiceProvider.ServiceProvider.GetRequiredService<IHostingEnvironment>();
config = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables()
.Build();
} public T GetAppSettings<T>(string key) where T : class, new()
{
var appconfig = new ServiceCollection()
.AddOptions()
.Configure<T>(config.GetSection(key))
.BuildServiceProvider()
.GetService<IOptions<T>>()
.Value;
return appconfig;
}
}

这里GetAppSettings方法是泛型方法,所以你可以随意新建储存数据的类。

然后就是使用它:这里是因为dapper要使用连接字符串:

    public class DapperHelper
{
public static IDbConnection GetConnection()
{
string connection = new ConfigurationHelper().GetAppSettings<AppSetting>("ConnectionStrings").ConnectionString;
       IDbConnection conn = new MySqlConnection(connection);
conn.Open();
     return conn;
}
}

其实这里还需要注意我们需要引用一些nuget包:

到这里就很完美啦,结束。

.Net core 在类库中获取配置文件Appsettings中的值的更多相关文章

  1. .net 获取配置文件AppSettings的键值

    //AppSettings.config 节点代码 <appSettings> <add key="IsUpdate" value="false&quo ...

  2. 要在一般处理程序中获取其他页面的session值

    1.要在一般处理程序中获取其他页面的session值,需要引用名空间: using System.Web.SessionState; 2.然后继承一个接口:IRequiresSessionState, ...

  3. sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

    原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...

  4. 在swt中获取jar包中的文件 uri is not hierarchical

    uri is not hierarchical 学习了:http://blog.csdn.net/zdsdiablo/article/details/1519719 在swt中获取jar包中的文件: ...

  5. 【记录】mybatis中获取常量类中数据

    部分转载,已注明来源: 1.mybatis中获取常量类中数据 <update id="refuseDebt"> UPDATE dt_debt a SET         ...

  6. .NET Core在类库中读取配置文件appsettings.json

    在.NET Framework框架时代我们的应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别 ...

  7. ASP.NET Core实现类库项目读取配置文件

    前言 之前继续在学习多线程方面的知识,忽然这两天看到博问中有个园友问到如何在.net core类库中读取配置文件,当时一下蒙了,这个提的多好,我居然不知道,于是这两天了解了相关内容才有此篇博客的出现, ...

  8. asp.net core 如何在Controller获取配置文件的值

    场景:我们会把一些配置信息,写在配置文件文件中,便于我们修改和配置.在之前的asp.net 中可以通过ConfigurationManger来获取web.config里面的配置.在.net core ...

  9. xml 方式更新和获取 配置文件 appSettings 节点 解决办法

    最近在搞一个小程序,会用到动态修改配置文件来进行处理,在百度上找了很多办法,但是始终达不到我预想的效果,先列出程序运行环境和开发工具版本: 开发工具:VS2010 .Net 运行环境:4.0 有两种方 ...

随机推荐

  1. 2013(1)需求工程, 需求开发, 需求分析, 面向对象需求分析, UML,需求建模

    案例一 某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下: (1) 库存管理系统主要包括货物入库管理.货物出库管理.仓库管理.统计报表和系统管理等功能. (2) 库存管理系统的用户 ...

  2. npm install命令遇到relocation error: npm: symbol SSL_set_cert_cb的报错问题

    在安装elasticsearch-head的过程中npm install遇到如下报错 [root@localhost elasticsearch-head]# npm install npm: rel ...

  3. Salesforce 开发整理(四)记录锁定

    如果一个对象的记录在满足某个条件的情况下,希望能对其进行锁定,即普通用户没有权限对其进行编辑操作,记录页面显示如下图 一般会在提交审批,或者项目进行到某个阶段的情况下,由后台进行判断要不要锁定记录,或 ...

  4. springboot修改页面不用重启的设置(idea)

       1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project ...

  5. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  6. Makefile文件基本格式

    以下是Makefile的基本模板 #指定编译器CC = g++#指定编译参数CFLAGS = -std=c++11 #指定头文件路径,此处用于指定非标准库的头文件路径INC = -I./ -I /us ...

  7. 二叉树遍历(前序、中序、后序)-Java实现

    一.前序遍历 访问顺序:先根节点,再左子树,最后右子树:上图的访问结果为:GDAFEMHZ. 1)递归实现 public void preOrderTraverse1(TreeNode root) { ...

  8. c# 创建socket连接辅助类

    using AD.SocketForm.Model; using NLog; using System; using System.Net; using System.Net.Sockets; nam ...

  9. spark 资源动态分配

    'spark.shuffle.service.enabled': 'true', 'spark.dynamicAllocation.enabled': 'false', , , , 'spark.sq ...

  10. 安卓 App 性能专项测试之流畅度深度解析-中篇

    背景 毫无疑问,流畅度在Android众多性能指标中其重要程度不言而喻,而且也是最为复杂的一个.为了描述这样的一个维度,业界大佬纷纷提出了各种指标来对其进行衡量.在上篇文章中给大家介绍了FPS这一项指 ...