2012-06-12 12 views
6

Ho un progetto MVC in .Net 4 con servizio WCF con BasicHttpBinding.le proprietà int sono 0 quando si utilizza WCF in .Net 2

Quando si consumano questo servizio in .Net 2 i valori che arrivano se la proprietà è int sono 0.

se si tratta di una stringa, che va bene.

costruzione di un nuovo progetto in .Net 4 che utilizza lo stesso servizio e utilizza l'implementazione esatta (come .Net 2) ==> i valori int sono corretti.

PERCHÉ?

Grazie!

risposta

6

Scommetto che hai un contratto di dati che ha la reale int proprietà:

public int YourProperty ...... 

così come una proprietà YourPropertySpecified lungo il lato:

public bool YourPropertySpecified ...... 

Dal momento che un int non può essere nullo, WCF non riesco a distinguere se hai definito o meno un valore - devi dirlo.

Quindi, se si utilizza una proprietà int e impostare un valore ad esso - si anche necessità di impostare la sua YourPropertySpecified proprietà di accompagnamento true:

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

Con questo ulteriore passaggio, i valori int dovrebbero arrivare il server va bene

+0

Caro Marc_s ti appicco! il mio modello contiene solo membri di dati int e non ho una proprietà bool che definisce se ho un valore. ti ho capito bene? se è così, non risolve il mio problema. – Shlo

+0

@Shlo: come appare la classe di dati che viene creata quando aggiungi il riferimento al servizio all'app client WCF? Non è il contratto di dati che hai scritto tu devi guardare - devi guardare la classe di dati che è stata generata automaticamente sul client che consuma il tuo servizio WCF –

+1

SEI GIUSTO !!! GRAZIE! Non ho guardato la classe che viene creata dopo aver aggiunto il riferimento al servizio ... – Shlo

Problemi correlati