У меня есть служба Windows, которая использует Quartz
для планирования задач. И я пытаюсь добиться Dependency Injection
, так как по умолчанию Quartz
не поддерживает это с Job Factory
по умолчанию. Поэтому мне пришлось создать собственный Job Factory
следующим образом.
var scheduler = await GetScheduler();
var serviceProvider = GetConfiguredServiceProvider();
scheduler.JobFactory = new CustomJobFactory(serviceProvider);
И ниже мой код для GetConfiguredServiceProvider()
.
private IServiceProvider GetConfiguredServiceProvider() {
var services = new ServiceCollection()
.AddScoped<IDailyJob, DailyJob>()
.AddScoped<IWeeklyJob, WeeklyJob>()
.AddScoped<IMonthlyJob, MonthlyJob>()
.AddScoped<IHelperService, HelperService>();
return services.BuildServiceProvider();
}
Но в строке .AddScoped<IDailyJob, DailyJob>()
я получаю сообщение об ошибке
Код серьезности Описание Ошибка состояния подавления строки файла проекта CS1061 «ServiceCollection» не содержит определения для «AddScoped», и не удалось найти доступный метод расширения «AddScoped», принимающий первый аргумент типа «ServiceCollection» (вы пропустили директиву using или ссылка на сборку?)
Кто-нибудь еще сталкивался с этой же проблемой?