c# - .net core(controllerBase)中初始化方法(apiController)的替代方法是什么
问题描述
我正在将一个 asp.net WebAPI 应用程序(继承的 APIController)迁移到 .net 核心 API 应用程序(继承的 ControllerBase)。我有一个带有参数 System.web.http.controllers.HttpControllerContext 的初始化方法。
执行相同功能的初始化方法的替代方法是什么?
解决方案
我没有使用 ASP.NET WebAPI 的经验,但是在我的 .NET Core WebAPI 项目中,我只是使用控制器的构造函数和内置的依赖注入功能来初始化我的控制器。
在您访问的情况下HttpContext
,您可以尝试以下操作:
在Startup.cs
:
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
//...
}
}
有了这个,你应该能够在你的控制器方法中使用Controller
类的属性:HttpContext
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
public class DummyController : Controller
{
[HttpPost]
public ActionResult ProcessMyDummyPostAction()
{
//...
HttpRequest request = HttpContext.Request;
//...
return Ok();
}
}