lunes, 19 de octubre de 2015

WebService - Parámetros extras SpecifiedFields (fix)

Cuando se consume un servicio web, existen dos maneras de referenciarlo, una es añadiendo un Web Reference y la otra es añadiendo un Service Reference, esta ultima opción esta presente desde VS2008.

Una de las diferencias entre las dos formas de referenciar es la aparición de campos/miembros extras con la estructura de nombre: NombreCampoSpecified del tipo booleano.




Algo de código:

Al revisar los archivos reference que se generan al crear la referencia podemos notar lo siguiente:
·         Web Reference



1 SF
Se genera un miembro extra con la palabra Specified al final.




Código fuente del cliente: 

2s




·         Service Reference

3s

Aqui no exiete el problema.



Código fuente del cliente:
4s



Dos maneras prácticas de evitar esto cuando se trabaja con Web Reference son:


  1. Cuando no se tiene control del Servicio Web.

Para que el dato se pase al servidor, en el cliente se debe asignar el valor true a la variable extra:
5s




 2.   Cuando si se tiene control del Servicio Web.-
Se puede aplicar lo anterior del lado del cliente o se debe modificar el esquema en el servidor donde este  definido el campo del que se genera la variable extra:
Se debe cambiar el valor de IsRequired a true.



6s













Con esto al volver a generar ya no aparecera la variable extra en el cliente:
7s



Diego.











No hay comentarios. :

Publicar un comentario