Добавить контроллер API из другого проекта - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть решение с несколькими проектами, каждый проект имеет класс stati c, который добавляет все зависимости к IServiceCollection из соответствующего проекта (код ниже).

Одним из этих проектов является расширение / плагин / интеграционный проект. Я мог бы добавить новый контроллер в свой проект webApi, но мне это не нравится, мне нравится сохранять проекты как можно более модульными / независимыми. Сказал, что я хочу, чтобы в моем интеграционном проекте был ApiController.

Вот что я попробовал

Структура моего проекта

SOLUTION
| --- Integration Project
      | - ...
      | - Controllers/
          | - IntegrationController.cs
      | - DependencyInjection.cs

| --- WebApi Project
      | - ...
      | - Controllers/
          | - ...
      | - Startup.cs

Integarion Project - Controller .cs

[Route("integration/[controller]")]
[ApiController]
[AllowAnonymous]
public class IntegrationController : ControllerBase
{

    ...
}

Проект Integarion - DependecyInjection.cs

    public static IServiceCollection AddIntegraion(this IServiceCollection services)
    {
        services.AddHttpClient();
        services.AddScoped<IRequestService, RequestService>();


        services.AddControllers(); <-----
        ...
        return services;
    }

Проект WebApi - Startup.cs

...

    public void ConfigureServices(IServiceCollection services)
    {


        // Integration projects
        services.AddIntegration();

        ...

        services.AddControllers();
    }

ПРОБЛЕМА

Это не работает, когда я отлаживаю и пытаюсь вызвать действия в IntegrationController, я получаю не найден. Как добавить контроллеры API из других проектов?

...