在.NET Core控制台应用程序中使用强类型配置
想象一下,你写一个控制台应用程序,你想要从配置文件中以强类型方式读取配置。
.NET Core 可以帮助我们解决。 通常我会在ASP.NET Core MVC中演示,但简单起见,只在控制台应用程序中演示。
让我们创建两个配置类,用于保存应用程序和模块名称。
public class MySettings
{
public string ApplicationName { get; set; }
} public class MyModuleSettings
{
public string ModuleName { get; set; }
}
应用程序配置文件如下所示:
{
"ApplicationName": "My sample application",
"SectionA": {
"ModuleName": "My sample module"
}
}
最后,让我们在应用程序中使用它。
public class Program
{
public static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables(); IConfigurationRoot configuration = builder.Build(); var settings = new MySettings();
configuration.Bind(settings); var moduleSettings = new MyModuleSettings();
configuration.GetSection("SectionA").Bind(moduleSettings); Console.WriteLine($"My application name is '{settings.ApplicationName}'");
Console.WriteLine($"My module name is '{moduleSettings.ModuleName}'"); Console.ReadLine();
}
}
所有的实现都是通过“Bind”方法。
不要忘记添加所需的依赖关系。 project.json应该包含以下内容:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.Extensions.Configuration": "1.1.0",
"Microsoft.Extensions.Configuration.Binder": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
运行结果:

在.NET Core应用程序中使用强类型配置类非常容易!希望本文对你有所帮助~。
在.NET Core控制台应用程序中使用强类型配置的更多相关文章
- 控制台应用程序中添加对MFC的支持
在windows控制台应用程序中,肯能会想使用一些MFC中的类,如CStringArray等,通过下面两步简单的设置可以添加对MFC的支持: 1.右击工程名 -> References 选择 A ...
- .NET CORE 控制台应用程序配置log4net日志文件
使用文件格式记录日志 1.新建一个.NET CORE控制台应用程序,添加log4net.dll引用,打开工具->NuGet包管理器->管理解决方案的NuGet程序包. 2.在NuGet-解 ...
- 将日志(Microsoft.Extensions.Logging)添加到.NET Core控制台应用程序
在.NET Core项目中,日志记录是通过依赖项注入进行管理的. 尽管这对于ASP.NET项目效果很好,但在启动Startup.cs中的新项目时,所有这些都会自动创建,而在控制台应用程序中则需要一些配 ...
- .net core控制台应用程序初识
.net core控制台应用程序与之前.net版本有所不同,编译之后不会生成.exe启动程序,而是生成.dll文件 所以在使用的时候需要敲入命令来启动控制台应用程序,命令是: start dotne ...
- 在Windows控制台应用程序中使用CString
CString是在windows平台下开发中经常使用的字符串类, CString已从MFC中剥离出来了,可以单独使用,只需引用atlstr.h头文件即可. include "stdafx.h ...
- .Net Core控制台应用程序使用依赖注入、配置文件等
.Net Core作为一门新语言,资料实在是太少了,并且国内学习的人也不多,虽然性能还行也跨平台了但是生态圈不发展起来也不行 刚出来的时候用 .Net Core + Dapper + Mysql 弄了 ...
- 跨平台应用集成(在ASP.NET Core MVC 应用程序中集成 Microsoft Graph)
作者:陈希章 发表于 2017年6月25日 谈一谈.NET 的跨平台 终于要写到这一篇了.跨平台的支持可以说是 Office 365 平台在设计伊始就考虑的目标.我在前面的文章已经提到过了,Micro ...
- ASP.NET Core MVC应用程序中的后台工作任务
在应用程序的内存中缓存常见数据(如查找)可以显着提高您的MVC Web应用程序性能和响应时间.当然,这些数据必须定期刷新. 当然你可以使用任何方法来更新数据,例如Redis中就提供了设定缓存对象的生命 ...
- .NET Core 控制台应用程序使用异步(Async)Main方法
C# 7.1 及以上的版本允许我们使用异步的Main方法. 一.新建一个控制台应用程序 二.异步Main方法 我们直接将Main方法改为如下: static async Task Main(strin ...
随机推荐
- CentOS标准目录结构
原博:http://www.centoscn.com/CentOS/2014/0424/2861.html/ 最高层root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Gru ...
- jdk1.8中的for循环
jdk1.8 从语法角度,感觉发生的变化还是蛮大的.在此记录一下. for 循环 public static void main(String[] args) { List<Animal> ...
- iOS 导航栏不可点击
self.navigationController.navigationBar.userInteractionEnabled = NO;
- 大数据全栈式开发语言 – Python
前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...
- 职业定位(移动端、ios开发、Android开发)
移动端 移动端webapp开发必备知识:http://www.chinaz.com/manage/2012/1128/283974.shtml 设计一款好的移动App,有哪些基本规则?http://w ...
- 前端制作篇之meta标签篇
移动端前端制作有些地方不同于互联网,这篇主要讨论的是meta标签.meta标签位于之间.是主要辅助HTML结构层的.meta标签不管在互联网前端还是在移动端都起了很重要的作用.这里只讨论移动端. 附上 ...
- 40+ Sublime Text 最佳插件汇总
大家好!我想要收集最好的Sublime Text插件,因为这可以改善我们的工作流程.我搜索了许多网站,下面就是我的发现. WebInspector 调试JavaScript特别棒的工具,成熟的Subl ...
- iOS 之 ARC 的内存泄露
循环引用导致内存泄露,如block容易内存泄露
- --@angularJS--一个简单的UI-Router路由demo
1.index.html: <!DOCTYPE HTML><html ng-app="routerApp"><head> <titl ...
- HDU-1598-find the most comfortable road(暴力+并查集)多看看,
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1598 题目思路:对于这个题目,可以先按速度的大小成小到大排序, 再成0 到 m ,把所有可以联通的道路 ...