博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net core 在类库中获取配置文件Appsettings中的值
阅读量:5023 次
发布时间:2019-06-12

本文共 1887 字,大约阅读时间需要 6 分钟。

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

像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
(); 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
(string key) where T : class, new() { var appconfig = new ServiceCollection() .AddOptions() .Configure
(config.GetSection(key)) .BuildServiceProvider() .GetService
>() .Value; return appconfig; } }

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

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

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

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

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

转载于:https://www.cnblogs.com/Ivan-Wu/p/11185770.html

你可能感兴趣的文章
Nodejs学习总结 -Express入门(一)
查看>>
web前端优化
查看>>
ssh 连接原理及ssh-keygen
查看>>
vs2013编译qt程序后中文出现乱码
查看>>
【转】IOS数据库操作SQLite3使用详解
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
设计网站大全
查看>>
JVM CUP占用率过高排除方法,windows环境
查看>>
【转】JAVA字符串格式化-String.format()的使用
查看>>
【转】ButterKnife基本使用--不错
查看>>
【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”...
查看>>
函数中关于const关键字使用的注意事项
查看>>
微信架构(转)
查看>>
Web项目中的路径问题
查看>>
js随机数的取整
查看>>
关于解析漏洞
查看>>
十大经典预测算法(六)---集成学习(模型融合算法)
查看>>
用php做一个简单的注册用户功能
查看>>
一款基于css3的3D图片翻页切换特效
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>