调用ASMX服务时多余的参数

时间:2014-03-07 18:29:16

标签: asp.net web-services asmx

在ASP.NET中,为什么可能调用具有比函数ask更多参数的Web服务的函数(多余的参数只是未使用)?


我需要做一种逆向工程。 我得到了一个带有函数myFunction(param A,param B)

的Web服务

我有一个网站用更多参数调用服务

MyService.MyFunction(A,B,C);

这似乎有效,但我不明白为什么?

2 个答案:

答案 0 :(得分:1)

它不是“网络服务功能”。就客户而言,它是WSDL文档中的一组描述。根据该描述,生成客户端代码。该客户端代码导致XML(SOAP)被发送到服务。

这可能会失去同步。例如,服务的版本1可能在操作上有3个参数。为版本1创建了一个客户端,因此它发送了3个参数。

服务的第2版可能会删除一个参数。如果客户端未更新,则仍会发送3个参数。服务可以选择忽略额外参数。

答案 1 :(得分:0)

您还可以传递包含所需参数的模型,例如,如果您期望:

firstname, lastname, city

你可以将你的对象设为:

public class Person {
    public string firstname { get; set; }
    public string lastname { get; set; }
    public string city { get; set; }
}

并让您的方法获得一个Person对象,如

public bool SavePerson(Person person) { ... }

稍后,您可以简单地将更多属性附加到Person对象。

所以,这可能实际上是正在发生的事情......让我们的图像可以传递firstnamelastname,但city是可选的。