我有一个带签名的网络服务:
[WebMethod(EnableSession = true)]
public Box FetchBox(string boxId, string p1, string p2, string p3 )
我通过jquery ajax调用此Web服务:
$.ajax({
url: "/WS/Ajaxify.asmx/FetchBox",
data: "{ 'boxId': '" + boxId + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8"
});
我想仅使用p1调用FetchBox一次,稍后使用p2调用FetchBox,而不是p1,依此类推。
在很多情况下我需要用p1或p2或p3或者......中的任何一个来调用FetchBox方法 参数。我不喜欢发送所有参数,因为系统是基于插件的,插件不知道其他参数。
c#4中的可选参数不适用于Web服务。
params string []参数在这里不合适,因为我需要知道参数名称。
答案 0 :(得分:3)
您无法将可选参数发送到SOAP Web服务。 SOAP协议没有可选参数的概念。
此外,您根本不应该使用ASMX服务。这是一项不应用于新开发的传统技术。应该使用WCF。