passing custom object as parameter to a webmethod of asp.net web service
Posted
by Jon
on Stack Overflow
See other posts from Stack Overflow
or by Jon
Published on 2010-05-11T06:07:22Z
Indexed on
2010/05/11
6:14 UTC
Read the original article
Hit count: 304
Hi,
I have a custom class declared as follows (in vb.net)
<Serializable()> _
Public Class NumInfo Public n As String
Public f As Integer Public fc As char() Public t As Integer
Public tc As char() Private validFlag As Boolean = True
Public Sub New()
End Sub
'I also have public properties(read/write) for all the public variables
End Class
In my service.asmx codebehind class I have a webmethod as follows:
<WebMethod()> _
<XmlInclude(GetType(NumInfo))> _
Public Function ConvertTo(ByVal info As NumInfo) As String
Return mbc(info)
'mbc is another function defined in my service.asmx "service" class
End Function
The problem is that when I start debugging it to test it, the page that I get does not contain any fields where I could input the values for the public fields of numInfo. How do I initialise the class? There is no "Invoke" button either. All I see are soap details as below:
ConvertTo
Test
The test form is only available for methods with primitive types as parameters.
SOAP 1.1
The following is a sample SOAP 1.1 request and response. The
placeholders shown need to be replaced with actual values.
POST /Converter/BC.asmx
HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://Services/ConvertTo"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConvertTo xmlns="http://Services/">
<info>
<n>string</n>
<f>int</f>
<fc>
<char>char</char>
<char>char>/char>
</fc>
..etc..
What am I doing wrong? For the record I tried replacing char() with string to see if it was the array causing problems but that didn't help either. I'm fairly new to web services. I tried replacing the custom object parameter with a primitive parameter just to check how things worked and it rendered a page with an input field and invoke button. I just can't seem to get it working with custom object. Help!
© Stack Overflow or respective owner