¿Podría alguien arrojar algo de luz sobre este comportamiento? Parece que Delphi SOAP establece el resultado de la función como último argumento, pero WSDL.exe lee el primer argumento como el resultado de la función.¿Incoherencia de SOAP? Delphi 2010 (Win32) Servidor y cliente .NET intercambiando 'out-parameter' y 'result'
tengo el método siguiente en un servicio SOAP Delphi, donde se utiliza la cadena de resultado para el tratamiento de errores básicos:
function LoadCustomer(CustomerID: Double; out CustomerName: String): String;
El WSDL generado es el siguiente:
<message name="LoadCustomer2Request">
<part name="CustomerID" type="xs:double"/>
</message>
<message name="LoadCustomer2Response">
<part name="CustomerName" type="xs:string"/>
<part name="return" type="xs:string"/>
</message>
Por alguna razón WSDL.exe genera el siguiente código C# que intercambia las cadenas CustomerName y 'Result':
public string LoadCustomer(double CustomerID, out string @return) {
WindowsFormsApplication1.ServiceReference1.LoadCustomerRequest inValue = new WindowsFormsApplication1.ServiceReference1.LoadCustomerRequest();
inValue.CustomerID = CustomerID;
WindowsFormsApplication1.ServiceReference1.LoadCustomerResponse retVal = ((WindowsFormsApplication1.ServiceReference1.ISKiWebInterface)(this)).LoadCustomer(inValue);
@return = [email protected];
return retVal.CustomerName;
}