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!