Les valeurs Null pour les propriétés de l'objet désérialisé par la WCF

J'ai un service web WCF qui utilisé pour fonctionner correctement. Quelque part en bas de la ligne, il s'est arrêté et je ne peux pas dire pourquoi. Le code et l'interface n'a jamais changé ni ne le web.config (au moins pas par rapport à la section des services web). J'ai une classe:

[DataContract]
public class QuizServiceArgs
{
    [DataMember(IsRequired = true, Order = 1)] 
    public int Category1 { get; set; }

    [DataMember(IsRequired = true, Order = 2)] 
    public int Category2 { get; set; }

    [DataMember(IsRequired = true, Order = 3)] 
    public int Category3 { get; set; }

    [DataMember(IsRequired = true, Order = 4)] 
    public int Category4 { get; set; }
}

Et l'interface du service est simple:

public interface IQuizService
{
    [OperationContract]
    [WebInvoke(Method = "POST",
       BodyStyle = WebMessageBodyStyle.WrappedRequest,
       ResponseFormat = WebMessageFormat.Json)]
    ServiceResult Save(QuizServiceArgs answers, string strvalue, int intvalue);
}

La seconde deux params strvalue et intvalue ont été ajoutés uniquement pour le dépannage pour voir si ceux qui ont arriver désérialisé-et ils le sont. Quand j'appuie sur le service, j'obtiens un message d'erreur disant que je suis absent la Category1 paramètre à partir de la demande, mais comme vous pouvez le voir, cette Violoniste de capture d'écran, les valeurs sont là.

Les valeurs Null pour les propriétés de l'objet désérialisé par la WCF

Je peux obtenir des valeurs primitives pour passer en mais les objets semblent tous être instancié avec la valeur null ou les valeurs par défaut. Ce que je fais mal?

Mise à JOUR

Je n'ai jamais vraiment eu ma réponse à la question qui suce, mais Sixto a suggéré que je fais passer mon sérialisation JSON. JSON était à l'origine de la conception, mais suis mis son veto quand j'ai eu des ennuis avec elle. Après, j'ai réussi à passer de retour à JSON, tout était la sérialisation et la désérialisation correctement. Maintenant, je suis juste en attente pour cet de faire une pause pour aucune explication afin que je puisse revenir à XML....

par ailleurs, j'ai rogné certains en-têtes de la fiddler demande que j'ai considéré comme du bruit. ne vous inquiétez pas si il ny a pas de Contenu, la longueur de l'attribut dans le pic, il y en avait un dans la demande 🙂
Avez-vous changé l'Ordre de propriété sur les données, qualités des membres? Ou tous les espaces de noms? Ou de supprimer tout les membres?
Les attributs sont du même ordre dans le POSTE qu'ils sont spécifiés dans le code. Je n'ai pas tous les espaces de noms - je l'ai gardé vide dans d'autres projets et il a travaillé très bien. Je n'ai pas enlever tous les membres. C'est littéralement la totalité de mon QuizServiceArgs classe.

OriginalL'auteur Jeff | 2011-05-02