有谁知道为什么 NetDataContractSerializer 可能会在序列化集合中添加“nil”条目?
例如,
<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 深入到对象图中,并且可能正在使用一个大小大于被序列化的项目数的后备数组(想想列表的后备数组)。
这就是这里发生的事情吗?它是构造函数创建要处理的类的工件yield return
(它是 JobRecord 的来源)吗?