2012-06-12 5 views
6

Tengo un proyecto MVC en .Net 4 con servicio WCF con BasicHttpBinding.Las propiedades int son 0 cuando consumen WCF en .Net 2

Al consumir este servicio en .Net 2 los valores que llegan si la propiedad es de tipo int son 0.

si se trata de una cadena, de lo que va bien.

bulding un nuevo proyecto en .Net 4 consumiendo el mismo servicio y utilizando la implementación exacta (como .Net 2) ==> los valores int son correctos.

¿POR QUÉ?

Gracias!

Respuesta

6

apuesto a que tiene un contrato de datos que tiene el int propiedad real:

public int YourProperty ...... 

, así como una propiedad YourPropertySpecified junto a él:

public bool YourPropertySpecified ...... 

Desde un int no puede ser nulo, WCF no puede distinguir si ha definido un valor o no, necesita contarlo.

tanto, si utiliza una propiedad int y establecer un valor a la misma - que también necesidad de ajustar su YourPropertySpecified propiedad que acompaña a la verdadera:

yourData.YourProperty = 42; 
yourData.YourPropertySpecified = true; 

Con este paso adicional, las int valores deben llegar a la el servidor muy bien

+0

Estimado marc_s i appriciate you reply! mi modelo contiene solo miembros de datos int y no tengo una propiedad bool que defina si tengo un valor para ella. ¿Te entendí correctamente? si es así, no resuelve mi problema. – Shlo

+0

@Shlo: ¿cómo se ve la clase de datos que se crea cuando agrega la referencia de servicio a su aplicación de cliente WCF? No es el contrato de datos que usted escribió lo que necesita mirar; necesita mirar la clase de datos que se generó automáticamente en el cliente que consume su servicio WCF. –

+1

¡TIENE DERECHO! ¡GRACIAS! No miré la clase que se crea después de agregar la referencia de servicio ... – Shlo

Cuestiones relacionadas