首先引用NuGet包

  1. Microsoft.Extensions.Configuration
  2. Microsoft.Extensions.Configuration.Json
  3. Microsoft.Extensions.DependencyInjection
  4. Microsoft.Extensions.Options
  5. Microsoft.Extensions.Options.ConfigurationExtensions

我们先来看一下appsettings.json文件

  1. {
  2. "Logging": {
  3. "IncludeScopes": false,
  4. "Debug": {
  5. "LogLevel": {
  6. "Default": "Warning"
  7. }
  8. },
  9. "Console": {
  10. "LogLevel": {
  11. "Default": "Warning"
  12. }
  13. }
  14. },
  15. "AppSupportDatabase": {
  16. "ConnectionString": "server=.;initial catalog=TestDB;user id=sa;password=123",
  17. "ProviderName": "System.Data.SqlClient"
  18. }
  19. }

我们想取ProviderName怎么办呢?首先新建ConfigManager

  1. public class ConfigManager
  2. {
  3. public string ProviderName { get; set; }
  4. public string ConnectionString { get; set; }
  5. }

GetAppsettings方法

  1. public T GetAppsettings<T>(string key) where T : class, new()
  2. {
  3. string keyDir = System.IO.Directory.GetCurrentDirectory();
  4. IConfiguration config = new ConfigurationBuilder()
  5. .SetBasePath(keyDir)
  6. .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
  7. .Build();
  8. var appconfig = new ServiceCollection()
  9. .AddOptions()
  10. .Configure<T>(config.GetSection(key))
  11. .BuildServiceProvider()
  12. .GetService<IOptions<T>>()
  13. .Value;
  14. return appconfig;
  15. }

调用例子

  1. GetAppsettings<ConfigManager>("AppSupportDatabase").ProviderName

出处:https://www.studenty.cn/?p=1094

==========================================

需要先引用官方的nuget包

①:Microsoft.Extensions.Configuration

②:Microsoft.Extensions.Options.ConfigurationExtensions

用户自定义json的配置文件

在这里我用的配置文件名称是appsettings.json

配置文件内容如图所示:

在Startup类中的Startup方法中编辑代码,我先把代码贴出来吧:

var builder = new ConfigurationBuilder()

.SetBasePath(env.ContentRootPath)

.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)

.AddEnvironmentVariables();

Configuration = builder.Build();

var connString = new ConnectionStrings();

Configuration.GetSection("ConnString").Bind(connString);

在代码中ConnectionStrings类是一个Model,然后你创建的变量connString已经被实例化了。你可以访问了

作者:奥斯卡的肌肤
链接:https://www.jianshu.com/p/a13a0194ff91
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

ASP.NET Core 类库中取读配置文件 appsettings.json的更多相关文章

  1. Asp.Net Core 进阶(一) —— 读取appsettings.json

    我们以前在Asp.Net MVC中使用 System.Configuration.ConfigurationManager 来读取web.config文件.但是Asp.Net Core MVC已经没有 ...

  2. 使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

    本章将和大家简单分享下如何使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:http ...

  3. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  4. 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式

    一.前言  最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...

  5. ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

    .NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中.对于分布式缓存,.NET Core提供了针对 ...

  6. ASP.NET Core WebAPI中的分析工具MiniProfiler

    介绍 作为一个开发人员,你知道如何分析自己开发的Api性能么? 在Visual Studio和Azure中, 我们可以使用Application Insight来监控项目.除此之外我们还可以使用一个免 ...

  7. ASP.NET Core之项目文件简介及配置文件与IOC的使用

    原文地址:https://www.cnblogs.com/knowledgesea/p/7079880.html 序言 在当前编程语言蓬勃发展与竞争的时期,对于我们.net从业者来说,.Net Cor ...

  8. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  9. 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包

    一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...

随机推荐

  1. Gerrit - Gerrit与GitLab集成

    1 - 简介 虽然Gerrit 本身提供 Code Review和 Git 仓库的两大功能,但实际上很多项目用的是其他的Git仓库,例如GitLab和GitHub. 一般情况下,Gerrit位于最终代 ...

  2. cocos creator图片渲染问题!

    问题:游戏项目需要添加一个开场剧情(); 第一时间使用了cc.component.scheduleOnce (), 里面的回调函数为 cc.loader.loadRes(). 进入游戏时,渲染主场景后 ...

  3. 全栈项目|小书架|服务器端-NodeJS+Koa2 实现书籍详情接口

    通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现. 书籍详情分析 书籍详情页面如下: 从上图可以分析出详情页面大概有以下 ...

  4. Openshift概念

    Openshift是一个开源容器云平台,是一个基于主流的容器技术Docker和K8s构建的云平台.Openshift底层以Docker作为容器引擎驱动,以K8s作为容器编排引擎组件,并提供了开发语言, ...

  5. C# IEnumerable接口

    问: 集合很好用,而且非常简单,但是我不明白 为什么数组.ArrayList 和 Hasttable 这些集合都能用foreach直接遍历呢?我想自己定义一个集合类,应该怎么做呢? 回答:这个问题问的 ...

  6. CentOS7配置网卡上网、安装wget、配置163yum源

    2019/09/12,CentOS 7 VMware 摘要:CentOS7安装完成(最小化安装)后,不能联网(已选择桥接网络),需要修改配置文件及配置yum源 修改配置文件 进入网卡配置目录 cd / ...

  7. 【Win10】系统修改

    1.删除“快速访问”[操作说明]      a.打开HKEY_CLASSES_ROOT\CLSID\{679f85cb-0220-4080-b29b-5540cc05aab6}\ShellFolder ...

  8. DB2数据库中DB2字符串类型

    DB2字符串是DB2数据库中的基础知识,下面就为您分类介绍DB2字符串,供您参考,如果您对DB2字符串方面刚兴趣的话,不妨一看. DB2字符串是字节序列.DB2字符串包括 CHAR(n) 类型的定长字 ...

  9. Windows10简单启动项目添加方法

    1,cmd输入 shell:startup 打卡启动项文件夹 2,将需要启动执行的项目的快捷方式放入此文件夹 3,重新启动系统就可以知道效果了

  10. github-git clone 下载很慢的问题解决

    git clone下载很慢的问题: 下载到指定目录:git clone https://github.com/ChengWuOne/spring-cloud-demo.git D:/日常软件/GitH ...