【发布时间】:2018-09-07 04:38:06
【问题描述】:
我只需要从控制器访问我的 BackgroundService。 由于 BackgroundServices 被注入了
services.AddSingleton<IHostedService, MyBackgroundService>()
如何从 Controller 类中使用它?
【问题讨论】:
-
将构造函数添加到控制器
public ControllerName(IHostedService service){ .. }在这里提问之前您是否尝试过阅读文档? docs.microsoft.com/en-us/aspnet/core/fundamentals/… -
是的,我做到了。我需要在我的控制器中注入 BackgroundService,而不是 IHostedService 接口。我可以拥有多个 BackgroundService,并且都作为 services.AddSingleton
() 注入 -
需要非常小心的是 aspnet 将 HostedServices 注册为 transient 实例。因此,每当您收到一个实例时,它不是在其上调用了
Start()的实例
标签: c# asp.net-core asp.net-core-2.1 background-service