我有一个相当大的对象图,我已通过 DataContractSerializer 将其序列化为一个文件。我现在想向用户展示这些文件的列表以供选择。在此列表中,我想显示有关文件的一些详细信息,它们是根对象的属性。我不想将整个图形加载到内存中,因为我只对显示根节点的属性感兴趣。
有谁知道控制反序列化“深度”的方法,这样我就可以从文件中提取根对象并跳过子对象?我宁愿避免将文件视为原始 XML,因为我没有在其他任何地方进行任何原始 XML 操作,这将是我必须保持同步的另一个代码分支。
我现在唯一的想法是创建一个兼容的“摘要”对象,其中只包含我感兴趣的属性,而不包含任何子对象,并将文件反序列化为该对象。这应该跳过孩子,因为它们与摘要对象无关。
有没有更好的方法来实现这一点?
更新/澄清:属性不是我正在寻找的答案。一方面,当对象第一次序列化时,它们会阻止“额外”属性出现在文件中。
其次,它们比我想要做的更持久。最终,我确实想反序列化整个文件,但不是在这一点上。我正在尝试显示用户将从中选择导入的文件的摘要列表。在导入期间,我将需要所有的子孙。在第 1 步中这只是矫枉过正。这些文件可能是大文件,因此完全反序列化其中的几个以便我可以显示它们的标题信息是行不通的。
希望这可以消除对原始问题的任何困惑。