有誰知道爲什麼NetDataContractSerializer可能在序列化集合中添加「nil」條目?DataContract XML中的所有這些空集合條目是什麼?
例如,
<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>
注意三個額外的「JobRecord」條目和附加元素說:「哎,我知道有四個節點在這裏,但其中只有一個意味着什麼。」
這似乎是一個奇怪的行爲。好的,所以我可以看到NDCS與對象圖深入對等,並且可能會與後面的數組混在一起,該數組的大小大於要序列化的項的數量(請考慮List的後備數組)。
這是怎麼回事?它是構造函數創建用於處理yield return
(這是JobRecord的源代碼)的類的人工產物嗎?
你能展示序列化這個代碼嗎?您提到「收益回報」,但不清楚這與XML有何關係。 – 2010-03-23 19:06:25