.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
IServiceProvider serviceProvider = services.BuildServiceProvider();var cosClient = serviceProvider.GetService
需要安装 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
services.AddOptions();
services.Configure
需要安装 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
services.AddSingleton
IServiceProvider serviceProvider = services.BuildServiceProvider();
var cosClient = serviceProvider.GetService();
}
}
}
}
作者:dotNET跨平台
来源:CSDN
原文:https://blog.csdn.net/sD7O95O/article/details/78694739
版权声明:本文为博主原创文章,转载请附上博文链接!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下