У меня есть решение с несколькими проектами, каждый проект имеет класс 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 из других проектов?