作者:雅白斋ab | 来源:互联网 | 2023-07-02 17:35
Hangfire.Autofac与ASP.NETCORE注入失败项目里面使用了Hangfire,因为之前没用过吧,遇到了个问题,就是使用了ico容器后,再用Hangfire总是注入
Hangfire.Autofac与ASP.NET CORE注入失败
项目里面使用了Hangfire,因为之前没用过吧,遇到了个问题,就是使用了ico容器后,再用Hangfire总是注入不上对象,总是后台任务拿db对象为空的情况 我tm直接石化 ????
///
/// 检查供应商状态(20天内没登陆发送短信提醒)
///
///
[HttpGet(nameof(CheckOperator))]
public async Task CheckOperator()
{
var res = await _service.CheckOperatorTask();
BackgroundJob.Schedule(()=>
_service.CheckLockAccount(res.lockIds)
,TimeSpan.FromDays(1));//一天后执行该任务
return res.msg;
}
![Hangfire&Autofac与ASP.NET CORE注入失败 Hangfire&Autofac与ASP.NET CORE注入失败](https://img1.php1.cn/3cd4a/24e5b/b64/7058b9efca9e6b12.jpeg)
![Hangfire&Autofac与ASP.NET CORE注入失败 Hangfire&Autofac与ASP.NET CORE注入失败](https://img1.php1.cn/3cd4a/24e5b/b64/15ea0c0ee3a65ea3.jpeg)
这个样子,肯定要抛空指针异常啊。注入不上咋办。之前都是用了个笨方法,通过WebRequest访问自己的接口去操作,你们也别笑,我自己都笑 ????
解决办法
BackgroundJob.Schedule(x=> x.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务
!正确
BackgroundJob.Schedule(() =>_service.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务
!错误
自己坑了自己一把,在此把坑填了!