Как включить startup.cs для DI в консольное приложение NET core - PullRequest
1 голос
/ 10 июля 2020

В точке входа консольного приложения (которое создает конечную точку обмена сообщениями) я использовал ConfigureServices для регистрации зависимостей моего проекта (. NET core 3.1).

Есть ли способ создайте Startup.cs и переместите в него код DI, как мы это делаем для. NET Core API / веб-проекты?

static void Main(string[] args)
{
    Console.WriteLine("Webjob is starting!");
    
    var endpointConfiguration = new EndpointConfiguration(Assembly.GetExecutingAssembly().GetName().Name);
    var host = new HostBuilder()
                .ConfigureHost(() =>
                {
                    var options = new ConfigurationOptions()
                    {
                        EndpointConfiguration = endpointConfiguration,
                        EndpointConfigurationService = new EndpointConfigurationService()
                    };
                    return options;
                })
                .ConfigureServices((context, services) =>
                {
                    // Add AutoMapper for DTO operations
                    services.AddAutoMapper(typeof(MappingProfile));

                    //Add caching support
                    services.AddRedisCache();

                    services.BuildServiceProvider();
                })
                .Build();

    var cancellationToken = new WebJobsShutdownWatcher().Token;
    using (host)
    {
        host.RunAsync(cancellationToken)
            .ConfigureAwait(false).GetAwaiter().GetResult();
    }
}
...