Есть у меня веб-приложение, в котором соединено два очень разнородных api, скажем:
[Route("api1/[controller]")]
[ApiController]
public class FooController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "foo value1", "foo value2" };
}
}
и
[Route("api2/[controller]")]
[ApiController]
public class BarController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "bar value1", "bar value2" };
}
}
И хочу я вынести контроллеры по разным сборкам, что-то типа:
Каким образом это можно сделать?
Нашёл ответ на английском so:
How to use a controller in another assembly in ASP.NET Core MVC 2.0?
Для asp.net core 2.x:
services.AddMvc().AddApplicationPart(assembly).AddControllersAsServices();
Для 3.x:
public void ConfigureServices(IServiceCollection services)
{
var assembly = typeof(**AnyTypeFromRequiredAssembly**).Assembly;
services.AddControllers()
.PartManager.ApplicationParts.Add(new AssemblyPart(assembly));
}
(в комментариях пишут, что и старые методы пока работают)
Итого, в моём примере:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddApplicationPart(typeof(Application1.Controllers.FooController).Assembly)
.AddApplicationPart(typeof(Application2.Controllers.BarController).Assembly)
.AddControllersAsServices()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
Документация по теме:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не смогла найти в интернете адекватного объяснения работы с DataTable для изменения записейЕсли у кого-то есть ссылки на источники, буду очень...
Выдаёт ошибку Fatal error: Uncaught Error: Call to a member function bindValue() on bool in… Не пойму, в чём может быть проблемаВывод var_dump($req); — bool(false)
Например, есть строка с названием файла без путиКак оределить, что нет пути? Делаю так, не работает:
На странице есть несколько полей формы с одинаковым именем name='protectMean[]'UPDATE срабатывает только если в самом последнем поле формы я меняю значение