简体   繁体   English

自有服务 - 没有注册类型服务

[英]Own service - no service for type has been registered

I would like to use Hangfire in my ASP.NET Core app, bu I have got error message: 我想在我的ASP.NET核心应用程序中使用Hangfire,我有错误消息:

No service for type has been registered 没有注册类型服务

Here's my code: Service: 这是我的代码:服务:

public class MyService: IMyService
{
    private readonly MyContext _context;

    public MyService(MyContext context)
    {
        _context = context;
    }

    // some code
}

public interface IMyService
{
      //some code
}

In Startup.cs: 在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);
}

Do you have any idea why service is not registered? 你知道服务没有注册的原因吗?

Hangfire hooks into the dependency injection already in place so you don't need to use serviceProvider.GetService to get your object. Hangfire挂钩到已经存在的依赖注入,因此您不需要使用serviceProvider.GetService来获取对象。 Instead use the appropriate Hangfire function to let it resolve the dependency: 而是使用适当的Hangfire函数让它解决依赖关系:

RecurringJob.AddOrUpdate<IMyService>(s => s.MyMethod(), Cron.Minutely);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM