ASP.NET Web API 2.0 管道和 ASP.NET Core Web API 管道差异

ASP.NET Web API 2.0 pipeline and ASP.NET Core Web API pipeline differences

我最近开始将我的应用程序从 Web.Api .NET 标准迁移到 .Net Core。

首先WebApi管道的所有步骤还在吗?

当我说所有步骤时,我的意思是: Web api pipeline Poster

在使用方面,我可以看到过滤器是通过

 [ServiceFilter(typeof(NameOfAttribute))]

但是在诸如此类的各种文章中: https://andrewlock.net/asp-net-core-in-action-filters/

我可以看到不同类型的过滤器,例如 resourceresults 过滤器。

我也看不到委托处理程序的用法。

我们应该在哪里将以前管道的功能与新标准相结合?

谢谢

由于经典 Asp.NetAsp.Net core 是同源技术,因此在请求处理中有许多共同的概念,但也存在一些差异,很可能您将不得不重写项目中的某些内容。

如您所述,有新的过滤器。它们允许以更细粒度的方式处理请求。您可以像以前一样使用过滤器,只需装饰操作和控制器即可:

[SomeFilter]
public IActionResult SomeAction(){...}

并且(与之前在经典 Asp.Net 中一样)您不能通过过滤器构造函数使用依赖项注入。像这样应用的过滤器表现得像一个单例。一个实例用于所有请求。

ServiceFilterAttributeTypeFilterAttribute 允许通过过滤器构造函数使用依赖注入。可选地应用过滤器可以像单例一样运行,或者可以每次(通过依赖注入)为每个请求创建。您可以使用 IsReusable 属性 进行调整。阅读有关过滤器 here 的更多信息。

没有了 Delegating Handlers。您可以创建自定义 middleware 而不是。你可以看一个例子 .