The number one problem in dealing with rpc-literal Web Services is the fact that they are unsupported on the .NET platform, yet. However, every rpc-literal message can be “built” using a doc-literal based implementations. By doing so, the .NET stub for the WSDL defined in Issue 8 may look the following:

 

[WebServiceBinding(Name="CalculatorSoap", Namespace="uri.test.com")]

public abstract class Issue7Service : System.Web.Services.WebService

{

    [WebMethod]

    [SoapDocumentMethod("uri.test.com/add",

       Use=SoapBindingUse.Literal,

       ParameterStyle=SoapParameterStyle.Bare)]

    [return: XmlElement("AddResponse", Namespace="uri.test.com")]

    public abstract AddResponse Add([XmlElement("Add", Namespace="uri.test.com")] Add addRequest);

}

 

[XmlType(Namespace="uri.test.com")]

public class Add

{

    public AddRequestType AddRequestType;

}

 

[XmlType(Namespace="uri.test.com")]

public class AddRequestType

{

    public int a;

    public int b;

}

 

[XmlType(Namespace="uri.test.com")]

public class AddResponseType

{

    public int c;

}

 

[XmlType(Namespace="uri.test.com")]

public class AddResponse

{

    public AddResponseType AddResponseType;

}

 

The full explanation of this answer has been split into 3 different postings: