gpt4 book ai didi

c# - 继承 ApiController 与 IHttpController 的区别

转载 作者:太空狗 更新时间:2023-10-30 00:24:49 25 4
gpt4 key购买 nike

虽然我已经使用 Microsoft .NET Framework 多年,但对于 ASP.NET,尤其是 ASP.NET WebAPI Framework,我还是个新手。我正在考虑为一个小项目使用 ASP.NET WebAPI 框架。

我正在查看 the ASP.NET WebAPI poster ,并注意到 Controller 类可以:

  1. 派生自 ApiController 类,
  2. 实现IHttpController接口(interface)

阅读MSDN documentation for the ApiController class表明它实现了 IHttpController。看来 IHttpController只需声明一个名为 ExecuteAsync() 的方法。

我不清楚的是:在什么情况下你应该从 ApiController 派生,还是简单地实现 IHttpController 接口(interface)的 ExecuteAsync()方法?每种方法的优缺点是什么?

最佳答案

如果这与 MVC 中的基本 Controller 相同:最简单的方法是从基类 (ApiController) 派生。这在您和一些基本请求处理之间提供了额外的抽象级别,您通常希望避免自己做这些事情。

对于 ASP.NET MVC,如果您想自定义框架处理请求的方式,您可以创建自己的 IController 类。这包括操作方法、 View 渲染等。

Controller(和 ApiController)类由 ASP.NET 作为所有这些东西的标准实现提供,并为您提供处理请求的预定义方法.

如果你想自定义所有这些“低级”的东西,请使用IHttpController;如果您没有非常具体的需要更改任何内容,请使用 ApiController

ControllerExecuteAsync() 方法(MVC 中的Execute)将作为请求的最基本入口点。从该方法返回数据作为 View 包括将字符串写入 requestContext 响应;几乎不是一种非常舒适的工作方式。

它允许您定义自己的 Controller 并给您很大的适应空间,但这也意味着您将不得不重新发明一大堆轮子。

关于c# - 继承 ApiController 与 IHttpController 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464909/

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