2010-07-18 4 views
1

J'ai généré un proxy WCF avec un entier [fieldName] dans la classe de demande de contrat de message. J'ai essayé d'envoyer de la valeur au serveur mais la valeur est toujours arrivée à 0 jusqu'à ce que je mette manuellement [fieldNameSpecified] à true.WCF: pourquoi dois-je définir manuellement [field] pour envoyer de la valeur au serveur?

Y at-il un problème avec la génération de proxy ou le WCF a été conçu de cette façon? Quelles sont les raisons derrière les champs [Spécifié], en particulier si les chaînes/guids n'ont pas de champs spécifiés dans les classes de proxy?

Nous vous remercions à l'avance

Répondre

3

C'est parce que le sérialiseur Xml n'a jamais été mis à jour pour soutenir Nullable, donc la façon dont il traite les champs facultatifs en utilisant les types de valeurs (par exemple, un int, qui ne peut être réglé sur null) était d'avoir un champ booléen XxxSpecified à côté de celui-ci qui vous permettait de dire au sérialiseur de considérer ou non la valeur du champ correspondant pendant la sérialisation.

Questions connexes