gpt4 book ai didi

asp.net - WebApi 2 中 OData Controller http 请求的完整生命周期是什么

转载 作者:行者123 更新时间:2023-12-03 21:35:13 43 4
gpt4 key购买 nike

我想知道在 IIS 中托管的 ODataController 上的 odata http 请求的完整生命周期是什么。

例如:

  • IIS 流水线步骤是什么?
  • 进入 ASP.NET Controller 区域时如何处理请求?
  • 何时应用路由?
  • 当属性如 HttpPost , ApplyFilter被应用?
  • 最佳答案

    Looking at the source code ,ODataController is another controller which is inherited from ApiController with custom routing and formatting. So I guess all the logic applied for ApiController applies to that as well.It also has Custom Formatting and Custom Routing applies using ODataFormatting and ODataRouting



    IIS 流水线步骤是什么?

    IIS 流水线步骤与任何其他 mvc Controller 相同。本质上,我们拥有构成管道的所有 httpmodules 和处理程序。更多详细信息可以找到 asp.net application lifecycle .从这个角度来看,当一个 mvc 请求到来时,URLRoutingModule、MvcRouteHandler 和 Mvchandler 协同工作以服务于一个 MVC 请求。为下一个问题详细解释。

    进入 ASP.NET Controller 区域时如何处理请求?何时应用路由?

    一切都以 ODataController 开始。MVC 中的几乎所有内容都是可扩展的( 13 extensibility points in asp.net mvc),您可以命名它,并且所有这些点都针对 OData 进行了扩展。例如,从自定义 Controller 开始,我们有
  • 来自 IHttpActionSelector 的自定义 ODataActionSelector .您可以找到示例实现here
  • IActionValueBinder ,示例实现 here
  • IContentNegotiator
  • 等等这样的更多。

    ///为支持使用 OData 格式写入和读取数据的 OData Controller 定义基类
    /// </summary>
    [ODataFormatting]
    [ODataRouting]
    [ApiExplorerSettings(IgnoreApi = true)]
    public abstract class ODataController : ApiController
  • 接收应用程序的第一个请求 -> 在 Global.asax 文件中,将 Route 对象添加到 RouteTable 对象中。
  • 执行路由 -> UrlRoutingModule 模块使用 RouteTable 集合中第一个匹配的 Route 对象。从 ODataRouting,将路由添加到 RouteTable 集合。
  • 创建 MVC 请求处理程序 -> MvcRouteHandler 对象创建 MvcHandler 类的实例并将 RequestContext 实例传递给处理程序
  • 创建 Controller -> MvcHandler 对象使用 RequestContext 实例标识 IControllerFactory 对象来创建 Controller 实例,
  • 执行 Controller -> MvcHandler 实例调用 Controller 的 Execute 方法
  • Invoke action -> 对于继承自ControllerBase类的 Controller ,与 Controller 关联的ControllerActionInvoker对象决定调用 Controller 类的哪个action方法,然后调用那个方法
    7.Action返回所有自定义CreatedODataResult、UpdatedODataResult等
  • 为 ODATA 注册了自定义 ODataMediaTypeFormatter 来格式化数据。
  • 关于asp.net - WebApi 2 中 OData Controller http 请求的完整生命周期是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325106/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com