【问题标题】:What is the advantage of using web API over web method in ASP.NET在 ASP.NET 中使用 Web API 优于 Web 方法的优势是什么
【发布时间】:2013-05-31 17:19:45
【问题描述】:

我熟悉网络方法。现在我得到了使用 Web API 而不是 Web 方法的建议。我已经做了一个 ASP.NET Web API 的演示,它更接近于 MVC 架构,使用的是经典的 asp.net Web 开发。我不喜欢将控制器(MVC 概念)与经典开发混为一谈。

我的网络方法:

[WebMethod]
public static string GetName(int id)
{
    return "testName";
}

我的 Web API 控制器:

public class MyController : ApiController
{
[HttpGet]
public string GetName(int id)
{
    return "testName";
}
}

在这个问题上我真的很困惑,任何人都对此有更好的想法。

您对相同的选项有什么建议?

如果两者都有相同的代码,我该如何比较?

【问题讨论】:

    标签: asp.net .net architecture asp.net-web-api webmethod


    【解决方案1】:

    经典的 ASP.NET WebServices(您称之为 WebMethod)是一种已弃用的技术。不再有任何积极的发展。 ASP.NET Web API 完全重写了 Microsoft 的 Web 堆栈,您可以在其中更好地控制创建 RESTful Web 服务。这并不意味着您应该在其中一个或另一个之间进行选择。还有ServiceStack。如果你正在开始一个新项目,你应该远离经典的 web 服务。如果它们仍然存在于 .NET 框架中,那是出于与遗留代码的兼容性原因。

    【讨论】:

      【解决方案2】:

      补充 Darin 的回答,如果您想从 ApiController 测试您的方法,您可以使用 DI 容器 (http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver) 注入对象的依赖项。依赖注入是自动完成的。

      但是,对于 webmethods,您不能以这种方式使用 DI,因为 webmethods 必须是静态。如果您坚持使用 DI,则需要在每个 web 方法中直接实例化并调用容器,以使依赖项能够工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 2014-06-05
        • 2012-08-22
        • 1970-01-01
        • 2010-09-11
        相关资源
        最近更新 更多