J'ai un service qui reçoit des données d'un proxy hébergé dans une WebApp. Les DataMembers sont définis avec Order = * et j'ai également essayé d'ajouter isRequired = true. Le problème est que sur 60 champs d'information sérialisés et désérialisés, les mêmes 3 champs String sont systématiquement manquants (null). J'ai exécuté le débogage qui me montre que les données le rendent du navigateur de client au service de proxy intact (sérialisé de JSON). Le service proxy l'envoie ensuite au service Windows où les 3 champs sont manquants après la désérialisation.WCF DataContract Désérialisation manquante 3 Champs de chaîne même avec l'ensemble d'ordres
J'ai essayé de définir l'ordre des champs différemment mais rien ne semble fonctionner. C'est toujours le même 3 champs manquants simples, souvent pas plus de 10-20 caractères. Il est également important de mentionner que ces DataMembers gênants sont correctement renseignés dans toutes les autres zones du programme.
Le code de service proxy est la suivante
public TransactionResult Update(MyObj obj, String ItemOne, String ItemTwo)
{
MyService.MyServiceClient proxy = new MyService.MyServiceClient("WSHttpBinding_IMyService");
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
TransactionResult result = proxy.Update(obj, ItemOne, ItemTwo);
proxy.Close();
return result;
}
code service Windows est
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public TransactionResult Update(MyObj obj, String ItemOne, String ItemTwo)
{obj is missing same 3 values at this point...}
Un exemple de l'un des DataMembers de l'objet
[DataMember(Order = 56)]
public String ItemTwo
{
get
{
...
}
set
{
...
}
}