.NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
.NET Core 控制臺程序沒有 ASP.NET Core 的 IWebHostBuilder 與?Startup.cs ,那要讀 appsettings.json、注依賴、配日志、設 IOptions 該怎么辦呢?因為這些操作與 ASP.NET Core 無依賴,所以可以自己動手,輕松搞定。
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>();} }
原文:http://www.cnblogs.com/dudu/p/7803086.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的.NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IIS中的 Asp.Net Core 和
- 下一篇: Net Core下多种ORM框架特性及性