title: generate wcf server code from wsdl files
body: <p>Greetings, I would like to generate some contract based on wsdl file. I used svcutil but I suspect it generated it wrong as all contract methods have void returned type. Is there any tool for this purpose?</p>
  
  <p>EDIT:
  here is the wsdl file:</p>
  
  <pre><code>    &lt;wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://dantek.com.pl/EDItEUR/EDItX/LibraryBookSupply/WebService/CustomerService/20100611/ServiceContract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" targetNamespace="http://mytargetNamespace/ServiceContract" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
    &lt;wsdl:types&gt;
      &lt;xsd:schema targetNamespace="http://mytargetNamespace/ServiceContract/Imports"&gt;
        &lt;xsd:import namespace="http http://mytargetNamespace/ServiceContract/ServiceContract" /&gt;
      &lt;/xsd:schema&gt;
    &lt;/wsdl:types&gt;
    &lt;wsdl:message name="CustomerService_ProcessMethod_InputMessage"&gt;
      &lt;wsdl:part name="parameters" element="tns:ProcessMethod" /&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="CustomerService_ProcessMethod_OutputMessage"&gt;
      &lt;wsdl:part name="parameters" element="tns:ProcessMethodResponse" /&gt;
    &lt;/wsdl:message&gt;
  &gt;
    &lt;wsdl:portType name="CustomerService"&gt;
      &lt;wsdl:operation name="ProcessShipNotice"&gt;
        &lt;wsdl:input wsaw:Action=" http://mytargetNamespace/ServiceContract/ProcessMethod" message="tns:CustomerService_ProcessMethod_InputMessage" /&gt;
        &lt;wsdl:output wsaw:Action=" http://mytargetNamespace/ServiceContract/ProcessMethod" message="tns:CustomerService_ProcessMethod_OutputMessage" /&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:portType&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>
  
  <p>And the contract created</p>
  
  <pre><code>[ServiceContract]
  public interface CustomerService
  {
  
      [System.ServiceModel.OperationContractAttribute(Action = "http://mytargetNamespace/ServiceContract/CustomerService/ProcessMethod”, ReplyAction = " http://mytargetNamespace/ServiceContract/CustomerService/ProcessMethodResponse")]
      [System.ServiceModel.XmlSerializerFormatAttribute()]
      void ProcessMethod(ProcessMethodRequest request);
  </code></pre>
  
  <p>I don't want to have ProcessMethod returned type void but rather ProcessMethodResponse type. How can I achieve it?</p>
  
  <p>EDIT2: Here's my schema:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;xs:schema xmlns:tns="http://myTargetNamespece/ServiceContract" elementFormDefault="qualified" 
       targetNamespace="http://myTargetNamespace/ServiceContract" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
    &lt;xs:element name="ProcessMethod"&gt;
      &lt;xs:complexType&gt;
        &lt;xs:sequence&gt;
          &lt;xs:element minOccurs="0" maxOccurs="1" name="request" type="tns:ProcessMethodRequest" /&gt;
        &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
    &lt;/xs:element&gt;
    &lt;xs:complexType name="ProcessMethodRequest" abstract="true" /&gt;
    &lt;xs:complexType name="ProcessMethodRequestWithPayload"/&gt;
    &lt;xs:element name="ProcessMethodResponse"&gt;
      &lt;xs:complexType /&gt;
    &lt;/xs:element&gt;
  &lt;/xs:schema&gt;
  </code></pre>