En fin, espero podais hecharme un cable con este tema, por que soy incapaz de resolverlo, y estoy perdiendo la cabeza...
Vereis, hice un pequeño servicio web con WCF .NET. Este Servicio tiene un método el cual recibe un objeto de tipo complejo, comprueba una de sus propiedades y según lo que tenga, modifica su propiedad y lo devuelve.
Bien, es algo muy simple, os dejo el código del método.
Código:
Bien... la cuestión es que llamo a este método desde una aplicación Android, serializando el objeto desde java y demás... El servicio recibe el objeto, ya que no entra por la excepción ni nada, pero... no es capaz de leer las propiedades, o las interpreta todas como null o false, o algo, no sé bien, pero por el IF no entra...public CompositeType GetDataUsingDataContract(CompositeType composite) { if (composite == null) { throw new ArgumentNullException("composite"); } if (composite.BoolValue) { composite.StringValue += "Suffix"; } composite.StringValue += "data from server"; return composite; }
Por lo visto, las propiedades le llegan vacias, no obstante, el método devuelve el objeto a mi app Android, el cual lo recibe con las propiedades debidamente cambiadas desde el servidor...
SOAP ENVIADO
Código:
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"> <v:Header /> <v:Body> <GetDataUsingDataContract xmlns="http://tempuri.org/" id="o0" c:root="1"> <composite i:type="n0:CompositeType" xmlns:n0="http://schemas.datacontract.org/2004/07/TicketoWS"> <BoolValue i:type="d:boolean">true</BoolValue> <StringValue i:type="d:string">Probando</StringValue> </composite> </GetDataUsingDataContract> </v:Body> </v:Envelope>
SOAP RECIBIDO
Código:
Por favor... ¿Alguien se le ocurre, por que las propiedades enviadas desde Android, mi servicio WCF no es capaz de interpretarlas, pero Android, si es capaz de interpretar lo que le llega al WCF?<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <GetDataUsingDataContractResponse xmlns="http://tempuri.org/"> <GetDataUsingDataContractResult xmlns:a="http://schemas.datacontract.org/2004/07/TicketoWS" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <a:BoolValue>false</a:BoolValue> <a:StringValue>data from server</a:StringValue> </GetDataUsingDataContractResult> </GetDataUsingDataContractResponse> </s:Body> </s:Envelope>
Cualquier cosa que podais ayudarme... os lo agradeceré enormemente amigos.