passing custom object as parameter to a webmethod of asp.net web service
- by Jon
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 variablesEnd 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:
ConvertToTestThe test form is only
available for methods with primitive
types as parameters.SOAP 1.1The
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.1Host:
localhostContent-Type: text/xml;
charset=utf-8Content-Length:
lengthSOAPAction:
"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!