SuperAPI AI 工具集

configuring-console-app-di

通用与其它

查看项目

更新于 10-15 20:12

技能介绍

用途:指导在 .NET 控制台应用中通过 GenericHost 实现依赖注入(DI),适用于需要 DI、托管服务等场景的控制台程序。

主要能力:

  1. 依赖包:需引用 Microsoft.Extensions.Hosting,版本 9.0.*。
  2. 基本实现:在 Program.cs 中用 Host.CreateDefaultBuilder(args) 构建主机,通过 ConfigureServices 注册服务(如 AddSingleton<IMyService, MyService>()),再 Build() 并解析入口类运行。
  3. 服务生命周期:Singleton 为整个应用单实例,适用于无状态服务;Scoped 为每次请求单实例,适用于 DbContext;Transient 为每次注入新实例,适用于轻量服务。
  4. 配置集成:可在 ConfigureAppConfiguration 中添加 appsettings.json(optional: true),并通过 services.Configure<AppSettings>(context.Configuration.GetSection("AppSettings")) 绑定配置。
  5. 日志集成:构造函数注入 ILogger<App>,调用 logger.LogInformation 记录日志。

使用方式:按资料中的代码结构,在 Program.cs 配置主机与服务,在 App.cs 中通过构造函数注入依赖并实现 RunAsync。

限制与注意:避免服务定位器模式,即不要在类中注入 IServiceProvider 再解析服务,而应直接构造函数注入;注意捕获依赖问题,Singleton 不应注入 Scoped 或 Transient 依赖。资料未提供更多平台、收费或效果信息。