Как передать / внедрить интерфейс в классе Invocable - PullRequest
0 голосов
/ 05 мая 2020

Я работаю над службой воркеров, используя Coraval библиотеку, следуя этой статье. Из класса Program.cs я хочу передать Invocable класс и Interface, но не знаю, как передать Interface. Это мой Program.cs код класса

public class Program
{
    public static void Main(string[] args)
    {
        IHost host = CreateHostBuilder(args).Build();
        host.Services.UseScheduler(scheduler => {
            // Remind schedular to repeat the same job in every five-second   
            scheduler
                .Schedule<ReprocessInvocable>()
                .EveryTenSeconds();
        });
        host.Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
      Host.CreateDefaultBuilder(args)
          .ConfigureServices(services =>
          {
            services.AddScheduler();
            // register job with container  
            services.AddTransient<ReprocessInvocable>();
          });
}

Invocable класс

public class ReprocessInvocable : IInvocable
{
    IForceReprocess _forceReprocess;


    public ReprocessInvocable(IForceReprocess forceReprocess)
    {
        _forceReprocess = forceReprocess;
    }

   public async Task Invoke()
    {
        _forceReprocess.GetFailedProduct();
        Console.WriteLine("Works fine... my first schedule job.......!!!" + DateTime.Now.ToString());
        //return Task.CompletedTask;
    }
}

Может мне нужен пропуск interface здесь services.AddTransient<ReprocessInvocable>();

...