.Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置
新建控制台应用(.Net Core)程序
添加json文件,命名为appsettings.json,设置文件属性 如果较新则复制。添加内容如下
{
  "MyWords" : "Hello World!"
}
nuget添加相关引用
依次添加以下引用
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Hosting
实现思路
在看到《.NET 通用主机》的文章之后,认为可以尝试借助GenericHost更优雅的在Console项目中使用appsetings.json进行项目配置。
Main入口代码如下:
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace ConsoleApp1
{
    class Program
    {
        private static IConfiguration _appConfiguration;
        static void Main(string[] args)
        {
            var hostBuilder = new HostBuilder().ConfigureAppConfiguration((hostContext, configApp) =>
            {
                var hostingEnvironment = hostContext.HostingEnvironment;
                _appConfiguration = AppConfigurations.Get(hostingEnvironment.ContentRootPath, hostingEnvironment.EnvironmentName);
            }).ConfigureServices((hostContext, services) =>
            {
                //注入IConfiguration到DI容器
                services.AddSingleton(_appConfiguration);
                //注入MyService到DI容器
                services.AddSingleton<IMyService, MyService>();
            });
            //初始化通用主机
            var host = hostBuilder.Build();
            //获取MyService
            var myService = host.Services.GetService<IMyService>();
            //调用SayMyWords方法
            myService.SayMyWords();
            Console.ReadKey();
        }
    }
}
demo地址
参考文章与说明
说明:
- 通用主机Hosting的开源地址:https://github.com/aspnet/Extensions/tree/master/src/Hosting
 
.Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置的更多相关文章
- 用"hosting.json"配置ASP.NET Core站点的Hosting环境
		
通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...
 - ASP.NET CORE读取appsettings.json的配置
		
如何在appsettings.json配置应用程序设置,微软给出的方法:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/config ...
 - 干货:.net core实现读取appsettings.json配置文件(建议收藏)
		
看好多人不懂在.NET CORE中如何读取配置文件,我这里分两篇,这一篇介绍怎样通过appsettings.json配置读取文件信息.这里我会教大家两种方式: 第一种直接放到通用类库,那里想调往那调. ...
 - .net core实践系列之短信服务-Sikiro.SMS.Bus服务的实现
		
前言 前两篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>.<.net core实践系列之短信服务-Api的SDK的实现与测试>分别讲解了AP ...
 - NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
		
.NET Core 控制台程序没有 ASP.NET Core 的 IWebHostBuilder 与 Startup.cs ,那要读 appsettings.json.注依赖.配日志.设 IOptio ...
 - .net core实践系列之SSO-跨域实现
		
前言 接着上篇的<.net core实践系列之SSO-同域实现>,这次来聊聊SSO跨域的实现方式.这次虽说是.net core实践,但是核心点使用jquery居多. 建议看这篇文章的朋友可 ...
 - .net core实践系列之短信服务-目录
		
前言 经过两周多的业余时间,终于把该系列的文章写完了.第一次写系列,可能部分关键点并没有覆盖到,如果有疑问的朋友可以随时反馈给我.另外也感谢在我发布文章时给予我方案建议与反馈源码BUG的朋友们.下面是 ...
 - .net core实践系列之短信服务-架构设计
		
前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...
 - .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现
		
前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...
 
随机推荐
- mysql获取表中日期的年月日时分秒
			
SELECT year(callTheRollTime) from schedule_account 获取年 SELECT month(callTheRollTime) from schedule_a ...
 - Java的序列化和反序列化
			
概述 Java对象的序列化和反序列化,这个词对我来说追溯到大学阶段,学Java对象流时知道有这东西.老师告诉我们可以把Java对象化作字节流,储存文件或网络通信.然后就是巴啦巴拉,一脸懵逼.举个例子, ...
 - SpringBoot之旅第六篇-启动原理及自定义starter
			
一.引言 SpringBoot的一大优势就是Starter,由于SpringBoot有很多开箱即用的Starter依赖,使得我们开发变得简单,我们不需要过多的关注框架的配置. 在日常开发中,我们也会自 ...
 - pytest进阶之配置文件
			
前言 pytest配置文件能够改变pytest框架代码的运行规则.比如修改pytest收集用例的规则,添加命令行参数等等!下面我们来一一讲解常用的一些配置项 Help 通过命令pytest --hel ...
 - MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
			
一.问题描述: 当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后就发现无法同步了. 二.Slave两个关键进程: mysql replication 中slave机器上有两个关键的 ...
 - 死磕 java集合之ConcurrentSkipListSet源码分析——Set大汇总
			
问题 (1)ConcurrentSkipListSet的底层是ConcurrentSkipListMap吗? (2)ConcurrentSkipListSet是线程安全的吗? (3)Concurren ...
 - Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一
			
目录 验证码类型 官网最新效果 找个用极验证的网站 拼接验证码图片 编写自动化代码 核心run方法 模拟拖动方法 图片处理方法 初步运行结果 拼接图 图片存储到本地 @ 验证码类型 今天要搞定的验证码 ...
 - 微服务框架surging学习之路——序列化
			
1.对微服务的理解 之前看到在群里的朋友门都在讨论微服务,看到他们的讨论,我也有了一些自己的理解,所谓微服务就是系统里的每个服务都 可以自由组合.自由组合这个就很厉害了,这样一来,每个服务与服务之间基 ...
 - 让 .NET 更方便的导入导出 Excel
			
让 .Net 更方便的导入导出Excel Intro 因为前一段时间需要处理一些 excel 数据,主要是导入/导出操作,将 Excel 数据转化为对象再用程序进行处理和分析,没有找到比较满意的库,于 ...
 - TCP的三次握手与四次挥手
			
TCP的三次握手与四次挥手 一.TCP(Transmission Control Protocol 传输控制协议) TCP是面向对连接,可靠的进程到进程通信的协议 TCP是提供全双工服务,即数据可在同 ...