Webservice complex types and class inheritance

Posted by pygorex1 on Stack Overflow See other posts from Stack Overflow or by pygorex1
Published on 2010-03-13T00:53:33Z Indexed on 2010/03/13 0:57 UTC
Read the original article Hit count: 531

Filed under:
|
|
|

Using the following Webservice definition using aClientArgs as a complex type:

[System.Web.Script.Services.ScriptService]
public class Controller : System.Web.Services.WebService {
    [WebMethod]
    public void save_client(aClientArgs client)
    {
           // Save client data
    }
}

Then defining aClientArgs as a sub-class:

public class aArgs 
{
    public string id = null;
    public string name = null;
}

public class aClientArgs : aArgs
{
    public string address = null;
    public string website = null;
}

Returns the following WSDL fragment for the save_client args:

<save_client xmlns="http://tempuri.org/">
  <client>
    <address>string</address>
    <website>string</website>
  </client>
</save_client>

When I'm expecting the following:

<save_client xmlns="http://tempuri.org/">
  <client>
    <id>string</id>
    <name>string</name>
    <address>string</address>
    <website>string</website>
  </client>
</save_client>

So it appears that the .NET WebService is not treating inherited properties as arguments/variables for purposes of a web service. How do I get .NET to also use the properties of the base class?

© Stack Overflow or respective owner

Related posts about c#

Related posts about ASP.NET