gpt4 book ai didi

c# - 自己的服务 - 没有注册类型的服务

转载 作者:太空狗 更新时间:2023-10-30 00:30:16 24 4
gpt4 key购买 nike

我想在我的 ASP.NET Core 应用程序中使用 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 Hook 到已经存在的依赖项注入(inject)中,因此您无需使用 serviceProvider.GetService 来获取您的对象。而是使用适当的 Hangfire 函数让它解决依赖关系:

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

关于c# - 自己的服务 - 没有注册类型的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com