0

我想知道是否可以为 Web 服务请求输入参数分配默认值。这是我在 wsdl 中的输入参数:

<element name="pensionType" default="0" type="int">

在代码方面,我像这样检查pensionType 的值:

if (pensionType!=0)
{ TODO code here}
else
{ return warning that no data found}

我在 Mozilla Poster 中对此进行了测试。因此,据此我预计,如果我没有为 pennmentType 提供任何价值,我会收到该警告。我收到一个很长的错误:

System.Web.Services.Protocols.SoapException:服务器无法读取请求。--->  
    System.InvalidOperationException:XML 文档中存在错误 (13, 39)。---> System.FormatException:输入字符串的格式不正确。在  
    System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at  
    System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Xml.XmlConvert.ToInt32(String s) at  
    Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read44_getFileTypesRequest(Boolean isNullable, Boolean checkType) 在  
    Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read45_getFileTypes(Boolean isNullable, Boolean checkType) 在  
    Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read62_getFileTypes() 在  
    Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer24.Deserialize(XmlSerializationReader 阅读器)在  
    System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,字符串 encodingStyle,XmlDeserializationEvents 事件)
--- 内部异常堆栈跟踪结束 --- 在  
    System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,字符串 encodingStyle,XmlDeserializationEvents 事件)在  
    System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,字符串 encodingStyle)在  
    System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()   
--- 内部异常堆栈跟踪结束 --- 在  
    System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() 在  
    System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest(
4

1 回答 1

1

你可以这样做:

if(pensionType != null)
{
    if (pensionType!=0)
    { TODO code here}
    else
    { return warning that no data found}
}

这可能会帮助你..!!

于 2012-06-23T10:22:52.417 回答