0
我使用hangfire lauch後臺作業,但我有一個問題,當我嘗試使用與generic的hangfire autofac集成自動解決任務服務它不工作,因爲它無法解決依賴關係之一。我想是因爲我沒有收到任何錯誤。Hangfire Autofac集成不能解決服務與註冊的依賴關係
BackgroundJob.Enqueue<IBackgroundTask>(x => x.RunAsync());
如果我使用其他方式通過自己解決它的工作。
var service = ApplicationContainer.Resolve<IBackgroundTask>();
BackgroundJob.Enqueue(() => service.RunAsync());
我發現在我的構造函數中有一個導致問題的測試服務。如果我在構造函數中刪除服務,則服務會得到解決。
public class ConvertCarteCreditService : IBackgroundTask
{
private readonly ILogger logger;
private readonly ITest testService;
public BackgroundTask(ILogger logger, **ITest test**)
{
this.logger = logger;
this.testService = test;
// this.testService = Startup.Resolve<ITest>();
}
我已經在啓動類配置autofac這樣的:
public void ConfigureServices(IServiceCollection services)
{
var builder = new ContainerBuilder();
ServiceLayerInstaller.ConfigureServices(builder);
DataLayerInstaller.ConfigureServices(builder, connectionString, readOnlyConnectionString);
builder.RegisterAssemblyTypes(typeof(WorkerRoleInstaller).
GetTypeInfo().Assembly).Where(t => t.Name.EndsWith("Test"))
.AsImplementedInterfaces();
WorkerRoleInstaller.ConfigureServices(builder);
builder.Populate(services);
ApplicationContainer = builder.Build();
var autofacJobActivator = new AutofacJobActivator(ApplicationContainer);
GlobalConfiguration.Configuration.UseActivator(autofacJobActivator);
}
「ITest」的實現是什麼?該類是否實現了多個接口? – VMAtm