如何传递web方法的可选参数
本文关键字:参数 方法 何传递 web | 更新日期: 2023-09-27 18:07:08
我有一个web方法与多个参数。web方法只依赖于2个字段,其余的都是可选的。
[OperationContract]
public string WarehouseContactInformation(int WAID (Required), string CN (Required), string CT (Optional), string CC (Optional), string CFN (Optional), string CD (Optional), string CE (Optional),string CW (Optional))
如何将这些参数声明为可选的,以便当我调用Web方法时,我只需要传递我有值的字段,例如:
WarehouseContactInformation(1,'Bill','00012311')
WarehouseContactInformation(1,'Bill','00012311','12415415','123525')
你不能。Web方法不支持可选参数。当您为web方法生成代理时,您将获得特定的签名,客户端和服务器将根据该签名交换消息。但是它不能传递可选参数。您可以在服务器端使用默认参数,但不是可选的。
我所做的是:发送与XML绑定的参数,并且不绑定可选参数的值,留下空白。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(
"<registration>" +
"<field1>" + value + "</field1>" +
"<field2>" + value(or leave blank) + "</field2>" +
"<field3>" + value + "</field3>" +
"<field4>" + value + "</field4>" +
"</registration>");
int status = objectOfService.methodName(xmlDoc);
在web service中你可以这样做
public int UpdateUser(XmlNode node)
{
String filed1Value=node["field1"].InnerText;
}
希望能有所帮助。