无法访问 .net 标准中的 httpcontext 扩展方法

Can't access httpcontext extension methods in .net standard

我有这个 .NET Standard 库,我想在其中编写 .NET Core 中间件。

里面我想做的事情:

Endpoint endpoint = httpContext.GetEndpoint();

无法解析 GetEndpoint() 扩展方法。

我已引用 Microsoft.AspNetCore.Http 并且我已将 Microsoft.AspNetCore.Http.AbstractionsMicrosoft.AspNetCore.Mvc.Core 包添加到项目中。

有解决办法吗,我是不是遗漏了什么?

我假设您正在为 ASP.NET Core 3.1 编写中间件,因为您包含了 "asp.net-core-3.1" 标签。

要使用该扩展,您需要定位 netcoreapp3.* 而不是 netstandard2.*:

<TargetFramework>netcoreapp3.1</TargetFramework>

(您可以在 documentation 页面的下拉菜单中查看扩展适用于哪些 ASP.NET 核心版本)

您还需要:

  1. 使用 Microsoft.NET.Sdk.Web MSBuild SDK:
    <Project Sdk="Microsoft.NET.Sdk.Web">
    
  2. 或添加框架参考:
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
    

参考:Use ASP.NET Core APIs in a class library