【问题标题】:What is the ASP.NET Core 3.1 equivalent to HttpControllerContext and HttpActionContext?什么是 ASP.NET Core 3.1 等效于 HttpControllerContext 和 HttpActionContext?
【发布时间】:2020-09-21 15:01:24
【问题描述】:

我已将项目从 Dot.Net-Framework 4.7.2 迁移到 Asp.Net-Core 3.1。 我想更改 WebApi 中 ApiController 类的所有属性。

public static HttpActionContext CreateActionContext(HttpControllerContext controllerContext = null, 
                                                    HttpActionDescriptor actionDescriptor = null)
{
    HttpControllerContext context = controllerContext ?? CreateControllerContext();
    HttpActionDescriptor descriptor = actionDescriptor ?? CreateActionDescriptor();
    descriptor.ControllerDescriptor = context.ControllerDescriptor;
    return new HttpActionContext(context, descriptor);
}

对于 System.Web.Http,我点击了以下链接。我用的时候可以用,但是不知道这个方法对不对,MAC不支持以下一种

System.Web.Http missing in .net Core 2.1

请提供任何替代或更好的解决方案

【问题讨论】:

  • 你到底想做什么?这可能是在这里获得答案的更好方法 - 可能没有可直接翻译的代码。
  • 想知道什么相当于Asp.Net Core 3.1中的HttpControllerContext类。如果NetFramework在ApiController类下有这么多的属性。所以了解Core 3.1中ControllerBase类中的属性等价
  • 是的,您的问题已经说明了这一点 - 但它没有帮助。
  • @KarthicG 你在哪里访问上下文?描述正在尝试做的事情。

标签: c# asp.net-core asp.net-web-api2 asp.net-core-webapi


【解决方案1】:

在控制器和操作中,您可以使用属性HttpContext 通过继承基类ControllerBase 来访问HttpContext

如果你在其他组件中需要HttpContext,你必须像这样使用依赖注入:

public void ConfigureServices(IServiceCollection services)
{
     services.AddHttpContextAccessor();
}

然后通过在构造函数中注入:

public class SomeClass
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public SomeClass(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }
}

MsDocs

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多