Я пытаюсь использовать Hangfire в качестве планировщика заданий.
Я создал класс с именем Check
, который имеет некоторые свойства (нестатические переменные) и метод Run
.
когда я запускаю метод Run
(используя платформу Hangfire) для конкретного экземпляра класса, свойства в методе Run не инициализируются.
Я понимаю, что это поведение по умолчанию JobActivator
Hangfire (когда срабатывает метод Run
, создается новый экземпляр Check
и запускается метод с его использованием).
Насколько я понимаю, решением является IoC Containers, чтобы заставить Hangfire использовать параметризованный ctor. Я пытался использовать Autofac, но я не могу заставить его работать.
Как я могу отправить параметры в ctor при планировании работы?
пример:
builder.RegisterType<Check>.AsSelf();
.
.
Check check = New Check(<Some Parameters for ctor>);
RecurringJob.AddOrUpdate<Check>("id", x => check.Run(), Cron.yearly);
.
.
.
class Check
{
public int x, y, z; // for example
public Check(int x, int y, int z) // ctor with parameters
public Run()
{
// Here I'm trying to access properties of the instance
// Like this.x but none of the them is initialized.
}
}