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/
我可以看到不同类型的过滤器,例如 resource 和 results 过滤器。
我也看不到委托处理程序的用法。
我们应该在哪里将以前管道的功能与新标准相结合?
谢谢
由于经典 Asp.Net
和 Asp.Net core
是同源技术,因此在请求处理中有许多共同的概念,但也存在一些差异,很可能您将不得不重写项目中的某些内容。
如您所述,有新的过滤器。它们允许以更细粒度的方式处理请求。您可以像以前一样使用过滤器,只需装饰操作和控制器即可:
[SomeFilter]
public IActionResult SomeAction(){...}
并且(与之前在经典 Asp.Net
中一样)您不能通过过滤器构造函数使用依赖项注入。像这样应用的过滤器表现得像一个单例。一个实例用于所有请求。
ServiceFilterAttribute
和 TypeFilterAttribute
允许通过过滤器构造函数使用依赖注入。可选地应用过滤器可以像单例一样运行,或者可以每次(通过依赖注入)为每个请求创建。您可以使用 IsReusable
属性 进行调整。阅读有关过滤器 here 的更多信息。
没有了 Delegating Handlers
。您可以创建自定义 middleware
而不是。你可以看一个例子 .
我最近开始将我的应用程序从 Web.Api .NET 标准迁移到 .Net Core。
首先WebApi管道的所有步骤还在吗?
当我说所有步骤时,我的意思是: Web api pipeline Poster
在使用方面,我可以看到过滤器是通过
[ServiceFilter(typeof(NameOfAttribute))]
但是在诸如此类的各种文章中: https://andrewlock.net/asp-net-core-in-action-filters/
我可以看到不同类型的过滤器,例如 resource 和 results 过滤器。
我也看不到委托处理程序的用法。
我们应该在哪里将以前管道的功能与新标准相结合?
谢谢
由于经典 Asp.Net
和 Asp.Net core
是同源技术,因此在请求处理中有许多共同的概念,但也存在一些差异,很可能您将不得不重写项目中的某些内容。
如您所述,有新的过滤器。它们允许以更细粒度的方式处理请求。您可以像以前一样使用过滤器,只需装饰操作和控制器即可:
[SomeFilter]
public IActionResult SomeAction(){...}
并且(与之前在经典 Asp.Net
中一样)您不能通过过滤器构造函数使用依赖项注入。像这样应用的过滤器表现得像一个单例。一个实例用于所有请求。
ServiceFilterAttribute
和 TypeFilterAttribute
允许通过过滤器构造函数使用依赖注入。可选地应用过滤器可以像单例一样运行,或者可以每次(通过依赖注入)为每个请求创建。您可以使用 IsReusable
属性 进行调整。阅读有关过滤器 here 的更多信息。
没有了 Delegating Handlers
。您可以创建自定义 middleware
而不是。你可以看一个例子