我有一个可以工作的JobFactory : IJobFactory
。其中一个依赖项本身依赖于HttpClient
,但这似乎不起作用。
例如。
services.AddHttpClient<Dependency>("dependency");
services.AddSingleton(typeof(Dependency));
using (var serviceProvider = services.BuildServiceProvider())
{
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
scheduler.JobFactory = new JobFactory(serviceProvider);
await scheduler.Start();
var job = JobBuilder.Create<Job1>()
.WithIdentity("job1")
.Build();
var trigger = TriggerBuilder.Create()
.WithIdentity("trigger1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(1)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
依赖构造函数为
public Dependency(HttpClient httpClient)
{
// <snipped>
}
而作业构造器是
public Job1(Dependency dependency)
{
// <snipped>
}
当我尝试运行它时,我被告知该作业抛出了一个未处理的异常。通过我的JobFactory进行调试,我发现httpClient根本没有被注入。不是应该由.AddHttpClient来处理吗?它不能工作是因为DI的多层次吗?有没有可能用另一种方式?
https://stackoverflow.com/questions/56728515
复制相似问题