ASP.NET Core Worker Service中的依赖注入
创始人
2024-09-15 16:00:21
0

在ASP.NET Core Worker Service中进行依赖注入的常见解决方法如下:

  1. 使用Microsoft.Extensions.DependencyInjection扩展服务容器:
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService();
            services.AddSingleton();
        });

在上述示例中,IMyDependency是需要注入的接口,MyDependency是具体的实现类。AddSingleton方法将MyDependency注册为单例,这意味着每次注入都会返回同一个实例。

  1. 在Worker类的构造函数中注入依赖:
public class Worker : BackgroundService
{
    private readonly ILogger _logger;
    private readonly IMyDependency _myDependency;

    public Worker(ILogger logger, IMyDependency myDependency)
    {
        _logger = logger;
        _myDependency = myDependency;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
            
            // 使用注入的依赖
            _myDependency.DoSomething();

            await Task.Delay(1000, stoppingToken);
        }
    }
}

在上述示例中,ILogger是已经内置的依赖注入,无需手动注册。

  1. 在Program.cs中创建服务容器,并手动注入依赖:
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService();
        })
        .ConfigureServices((hostContext, services) =>
        {
            services.AddSingleton();
        });

在上述示例中,AddSingleton方法将MyDependency注册为单例,与第一种方法相同。

这些解决方法可根据实际需求进行选择和组合使用。注意,在使用依赖注入之前,需要确保已经安装了Microsoft.Extensions.DependencyInjection包。

相关内容

热门资讯

九分钟辅助!微信多乐跑胡子作弊... 九分钟辅助!微信多乐跑胡子作弊,wepoker挂(推荐一款开挂辅助软件);打开点击测试直接进入微信(...
五分钟辅助!四川游戏家园破解版... 五分钟辅助!四川游戏家园破解版,海螺众娱辅助脚本(2分钟细说开挂辅助插件);1、这是跨平台的四川游戏...
5分钟开挂!雀友会广东潮汕辅助... 福建天天开心辅助软件大全开挂教程视频分享装挂详细步骤在当今的网络游戏中,福建天天开心辅助软件大全作为...
第9分钟辅助!山西扣点带你辅助... 第9分钟辅助!山西扣点带你辅助工具破解,丽水欢乐堂辅助插件(透视ai开挂辅助脚本);亲,有的,ai轻...
6分钟开挂!微信小程序雀神辅助... 6分钟开挂!微信小程序雀神辅助器,丽水都莱辅助器(透视挂开挂辅助插件)1、下载安装好微信小程序雀神辅...
5分钟辅助!掌中乐游戏辅助器,... 5分钟辅助!掌中乐游戏辅助器,波特互娱辅助(盘点十款开挂辅助工具);波特互娱辅助中的10万兆豆可能无...
三分钟开挂!九酷众游辅助,牛总... 三分钟开挂!九酷众游辅助,牛总管辅助免费版(分享认知开挂辅助脚本);1、让任何用户在无需AI插件第三...
第二分钟辅助!海贝之城有辅助吗... 第二分钟辅助!海贝之城有辅助吗,蜀门手游辅助免费脚本(必看攻略开挂辅助平台);蜀门手游辅助免费脚本软...
第2分钟透视!蛮王大厅辅助插件... 蛮王大厅辅助插件 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1...
第3分钟辅助!微信牵手跑辅助,... 第3分钟辅助!微信牵手跑辅助,潮友会鱼虾蟹塞子概率计算方式(玩家必看科普开挂辅助插件);潮友会鱼虾蟹...