Настроить экземпляр перед инъекцией - PullRequest
1 голос
/ 04 февраля 2020

Добавление windows сервисной поддержки в Main метод консольного проекта:

var myVariable = "example";
Host.CreateDefaultBuilder().ConfigureServices((hostContext, services) =>
{
    services.AddHostedService<Worker>();
}).UseWindowsService().Build().Run();

Рабочий класс:

public class Worker : BackgroundService
{
....
    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
        // Need to use myVariable here
    }
}

Как передать myVariable в экземпляр рабочего класса?

1 Ответ

1 голос
/ 04 февраля 2020

Если я неправильно понял, пожалуйста, дайте мне знать, но если у вашего работника был определен соответствующий конструктор:

public class Worker : IWorker 
{
     private readonly string example = String.Empty;
     public Worker(string example) => this.example = example;

     ...
}

Когда вы выполняете внедрение зависимостей, вы делаете что-то вроде этого:

var example = "Passed?";
services.AddSingleton<IWorker>(configure => new Worker(passed));

Я считаю, что это то, что вы спрашиваете.

...