Est-ce que quelqu'un sait pourquoi NetDataContractSerializer peut ajouter des entrées "nil" dans une collection sérialisée?Quelles sont toutes ces entrées de collection null dans mon XML DataContract?
Par exemple,
<Jobs z:Id="17">
<_items z:Id="18" z:Size="4">
<JobRecord z:Id="19">
<Name z:Id="20">Job1</Name>
</JobRecord>
<JobRecord i:nil="true" />
<JobRecord i:nil="true" />
<JobRecord i:nil="true" />
</_items>
<_size>1</_size>
<_version>2</_version>
</Jobs>
Remarquez les trois entrées « JobRecord » supplémentaires et l'élément supplémentaire en disant « hey, je sais qu'il ya quatre nœuds ici, mais seulement l'un d'entre eux signifie quoi que ce soit. »
Cela semble être un comportement étrange. Ok, je pouvais voir que le NDCS s'intègre profondément dans le graphe d'objets et pourrait se tourner vers un tableau de sauvegarde dont la taille est supérieure au nombre d'éléments en sérialisation (pensez au tableau de sauvegarde pour une liste).
Est-ce que c'est ce qui se passe ici? Est-ce un artefact de la classe que le constructeur crée pour gérer yield return
(qui est la source du JobRecord)?
Pourriez-vous montrer le code qui sérialise ceci? Vous parlez de "rendement de rendement", mais on ne sait pas comment cela se rapporte à ce XML. –