Asp.Net Core Совместное использование общих служб регистрации между несколькими API - PullRequest
0 голосов
/ 06 февраля 2019

Я создаю приложение на основе архитектуры микросервисов.На данный момент у меня есть 2 проекта WebApi, и мне нужен способ как-то делиться общими регистрациями служб между ними.Я имею в виду ... Я должен перерегистрировать все общие службы в Startup.cs для каждого проекта WebApi, который я добавляю в решение.Такие сервисы, как:

  • Промежуточное ПО обработки глобальных ошибок
  • Настройка ведения журнала
  • Настройка маршрутизации * Настройка 1008 *
  • appSettings.json и т. Д.

Есть ли способ, которым я могу централизовать эти общие вещи, чтобы сделать их глобальными для всех моих проектов WebApi?

1 Ответ

0 голосов
/ 06 февраля 2019

Для добавления сервисов с минимальным повторением кода одним из решений может быть создание статического класса с методом расширения в общем проекте ASP.NET Core, на который ссылается каждый из проектов API, который выглядит примерно так:

public static IServiceCollection AddCommonServices(this IServiceCollection services, IConfigurationSection myOptions)
{
    services.AddService1()
            .AddLogging()
            .Configure<MyOptions>(myOptions)
            ...
    services.AddMvc();

    return services;
}

Затем в Startup.cs каждого проекта API:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCommonServices(Configuration["MyOptions"]);
}

Вы можете сделать то же самое для метода Configure и для использования служб.

...