.NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
2017-11-08 11:13
387 查看
.NET Core 控制台程序没有 ASP.NET Core 的 IWebHostBuilder 与 Startup.cs ,那要读 appsettings.json、注依赖、配日志、设 IOptions 该怎么办呢?因为这些操作与 ASP.NET Core 无依赖,所以可以自己动手,轻松搞定。
1、读 appsettings.json ,ConfigurationBuilder 上
需要安装 nuget 包 Microsoft.Extensions.Configuration 、Microsoft.Extensions.Configuration.FileExtensions 、Microsoft.Extensions.Configuration.Json
2、注依赖,IServiceCollection + IServiceProvider 一起来
需要安装 nuget 包 Microsoft.Extensions.DependencyInjection
3、配日志, AddLogging 与 ILoggingBuilder 肩并肩
需要安装 nuget 包 Microsoft.Extensions.Logging 、Microsoft.Extensions.Logging.Configuration 、Microsoft.Extensions.Logging.Console
4、设IOptions,AddOptions() 与 Configure<T> 齐步走
需要安装 nuget 包 Microsoft.Extensions.Options 与 Microsoft.Extensions.Options.ConfigurationExtensions
完整代码:
1、读 appsettings.json ,ConfigurationBuilder 上
var conf = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true) .AddJsonFile("appsettings.Development.json", true, true) .Build();
需要安装 nuget 包 Microsoft.Extensions.Configuration 、Microsoft.Extensions.Configuration.FileExtensions 、Microsoft.Extensions.Configuration.Json
2、注依赖,IServiceCollection + IServiceProvider 一起来
IServiceCollection services = new ServiceCollection(); //... services.AddSingleton<CosClient>(); IServiceProvider serviceProvider = services.BuildServiceProvider(); var cosClient = serviceProvider.GetService<CosClient>();
需要安装 nuget 包 Microsoft.Extensions.DependencyInjection
3、配日志, AddLogging 与 ILoggingBuilder 肩并肩
services.AddLogging(builder => builder .AddConfiguration(conf.GetSection("Logging")) .AddConsole());
需要安装 nuget 包 Microsoft.Extensions.Logging 、Microsoft.Extensions.Logging.Configuration 、Microsoft.Extensions.Logging.Console
4、设IOptions,AddOptions() 与 Configure<T> 齐步走
services.AddOptions(); services.Configure<CosClientOptions>(conf.GetSection("cosClient"));
需要安装 nuget 包 Microsoft.Extensions.Options 与 Microsoft.Extensions.Options.ConfigurationExtensions
完整代码:
class Program
{
static async Task Main(string[] args)
{
var conf = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true) .AddJsonFile("appsettings.Development.json", true, true) .Build();
IServiceCollection services = new ServiceCollection();
services.AddLogging(builder => builder .AddConfiguration(conf.GetSection("Logging")) .AddConsole());
services.AddOptions(); services.Configure<CosClientOptions>(conf.GetSection("cosClient"));
services.AddSingleton<CosClient>();
IServiceProvider serviceProvider = services.BuildServiceProvider();
var cosClient = serviceProvider.GetService<CosClient>();
}
}
相关文章推荐
- .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
- 发布一个 json转c++ 的一个转换小程序(依赖jsoncpp 0.60)
- .NET Core 中读取appsettings.json配置文件的方法
- 妙用Delphi编译器开关为程序增加便捷的控制台调试/日志窗口
- .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
- C#控制台程序使用Log4net日志组件详解
- C#控制台程序使用Log4net日志组件
- 妙用Delphi编译器开关为程序增加便捷的控制台调试/日志窗口
- .NET Core下的日志(3):如何将日志消息输出到控制台上
- 使用控制台程序测试DLL依赖
- NET Core1.0之CentOS平台开发控制台程序DEMO
- Mac/Windows开发跨平台.NET Core 控制台程序
- C#基础-关于用json给控制台程序传值的坑
- linux 程序运行到后台,控制台输出到文件,并能日志切割的方法
- 使用控制台程序测试DLL依赖
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
- 基础学习:控制台接收输入字符与重定向输出流实现程序日志两例子的编程
- 14.8Python程序调试与测试(8):使用JSON文件进行日志配置
- .NET Core的日志[2]:将日志输出到控制台
- .NET Core类库项目中如何读取appsettings.json中的配置