在ASP.NET中,为什么可能调用具有比函数ask更多参数的Web服务的函数(多余的参数只是未使用)?
我需要做一种逆向工程。 我得到了一个带有函数myFunction(param A,param B)
的Web服务我有一个网站用更多参数调用服务
MyService.MyFunction(A,B,C);
这似乎有效,但我不明白为什么?
答案 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
对象。
所以,这可能实际上是正在发生的事情......让我们的图像可以传递firstname
和lastname
,但city
是可选的。