【问题标题】:Can web methods be overloaded?web方法可以重载吗?
【发布时间】:2010-12-04 02:26:31
【问题描述】:

我已经构建了一个常规的 .NET asmx 服务。如何在此服务中重载 Web 方法?

【问题讨论】:

  • 问题是编译器不会捕获它,并且错误消息没有为您提供太多信息:“本地计算机上的 (x) 服务启动然后停止。某些服务如果它们自动停止未被其他服务或程序使用”。

标签: c# .net oop


【解决方案1】:

WS-I(Web 服务互操作性)不支持重载。

【讨论】:

  • 你可以通过禁用 WS-I 兼容性来做到这一点,但我不能让自己提出这个作为答案;-p 对于所有明智的意图,这是(IMO)正确的答案。
【解决方案2】:

您不能真正重载 Web 方法。仔细想想,这是有道理的,因为 Web 方法被设计为不依赖于 OO 语言等底层技术,因为理论上它可以在 COBOL 之类的东西中运行。

虽然您可以编写一个看起来可以重载的 Web 方法,但实际上您必须为其分配一个不同的名称,如下所示:

[WebMethod]
public void Add(int x, int y)
{
}
[WebMethod(MessageName="AddFloat")]
public void Add(float x, float y)
{
}

【讨论】:

    【解决方案3】:

    是的。

    WebMethod 属性采用 MessageName 参数,允许您“重载”该方法。

    【讨论】:

      【解决方案4】:

      没有。 Web Service 方法名称必须是唯一的。

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多