自己的服务 - 没有注册类型的服务
Own service - no service for type has been registered
我想在我的 ASP.NET 核心应用程序中使用 Hangfire,但我收到错误消息:
No service for type has been registered
这是我的代码:
服务:
public class MyService: IMyService
{
private readonly MyContext _context;
public MyService(MyContext context)
{
_context = context;
}
// some code
}
public interface IMyService
{
//some code
}
在Startup.cs中:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IMyService, MyService>();
// another services
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
app.UseHangfireDashboard();
app.UseHangfireServer();
RecurringJob.AddOrUpdate(() => serviceProvider.GetService<IMyService>().MyMethod(), Cron.Minutely);
}
您知道为什么服务没有注册吗?
Hangfire 挂钩到已经存在的依赖项注入中,因此您无需使用 serviceProvider.GetService
来获取您的对象。而是使用适当的 Hangfire 函数让它解决依赖关系:
RecurringJob.AddOrUpdate<IMyService>(s => s.MyMethod(), Cron.Minutely);
我想在我的 ASP.NET 核心应用程序中使用 Hangfire,但我收到错误消息:
No service for type has been registered
这是我的代码: 服务:
public class MyService: IMyService
{
private readonly MyContext _context;
public MyService(MyContext context)
{
_context = context;
}
// some code
}
public interface IMyService
{
//some code
}
在Startup.cs中:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IMyService, MyService>();
// another services
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
app.UseHangfireDashboard();
app.UseHangfireServer();
RecurringJob.AddOrUpdate(() => serviceProvider.GetService<IMyService>().MyMethod(), Cron.Minutely);
}
您知道为什么服务没有注册吗?
Hangfire 挂钩到已经存在的依赖项注入中,因此您无需使用 serviceProvider.GetService
来获取您的对象。而是使用适当的 Hangfire 函数让它解决依赖关系:
RecurringJob.AddOrUpdate<IMyService>(s => s.MyMethod(), Cron.Minutely);