【发布时间】:2010-12-04 02:26:31
【问题描述】:
我已经构建了一个常规的 .NET asmx 服务。如何在此服务中重载 Web 方法?
【问题讨论】:
-
问题是编译器不会捕获它,并且错误消息没有为您提供太多信息:“本地计算机上的 (x) 服务启动然后停止。某些服务如果它们自动停止未被其他服务或程序使用”。
我已经构建了一个常规的 .NET asmx 服务。如何在此服务中重载 Web 方法?
【问题讨论】:
WS-I(Web 服务互操作性)不支持重载。
【讨论】:
您不能真正重载 Web 方法。仔细想想,这是有道理的,因为 Web 方法被设计为不依赖于 OO 语言等底层技术,因为理论上它可以在 COBOL 之类的东西中运行。
虽然您可以编写一个看起来可以重载的 Web 方法,但实际上您必须为其分配一个不同的名称,如下所示:
[WebMethod]
public void Add(int x, int y)
{
}
[WebMethod(MessageName="AddFloat")]
public void Add(float x, float y)
{
}
【讨论】:
是的。
WebMethod 属性采用 MessageName 参数,允许您“重载”该方法。
【讨论】:
没有。 Web Service 方法名称必须是唯一的。
【讨论】: