在我的项目中,我遇到了后台Job的问题 . 我正在使用Hangfire和默认的.Net Core Dependency注入 .
Startup.cs
ConfigureServices:
services.AddTransient<IAuthorizable, AuthorizeService>();
services.AddTransient<IEditable, ConfigureService>();
services.AddTransient<IRequested, RequestService>();
services.AddTransient<INotified, NotificationService>();
services.AddHangfire(x => x.UseSqlServerStorage("ConnectionString"));
配置:
app.UseHangfireDashboard();
app.UseHangfireServer();
当我的Job尝试运行时,我收到此错误:
System.InvalidOperationException:没有注册类型为“Mapper.Services.RequestService”的服务 .
我做错了什么?
1 回答
DI知道如何通过提供
RequestService
来处理IRequested
. 但这是针对要求IRequested
的课程 . 它不知道如何直接处理要求RequestService
的类 .因此,根据错误消息,您还需要向服务注册
RequestService
.根据评论更新 .
您还应该考虑将Job更新为依赖于与实现的
RequestService
相关的IRequested
抽象,如果确实如此 .