DataContractSerializerを介してファイルにシリアル化したかなり大きなオブジェクトグラフがあります。ここで、これらのファイルのリストをユーザーに提示して、選択できるようにします。このリストでは、ルートオブジェクトのプロパティであるファイルに関する詳細の一部を示します。ルートノードのプロパティを表示することだけに関心があるので、グラフ全体をメモリにロードしたくありません。
ファイルからルートオブジェクトをプルして子をスキップできるように、逆シリアル化の「深さ」を制御する方法を知っている人はいますか?他の場所では生のXML操作を行っていないため、ファイルを生のXMLとして扱うことは避けたいと思います。これは、同期を維持する必要があるコードのもう1つのブランチになります。
今の私の唯一のアイデアは、関心のあるプロパティのみを含み、子は含まない互換性のある「summary」オブジェクトを作成し、ファイルをそのオブジェクトに逆シリアル化することです。子はsummaryオブジェクトに関連しないため、これは子をスキップする必要があります。
これを達成するためのより良い方法はありますか?
更新/明確化:属性は私が探している答えではありません。1つには、オブジェクトが最初にシリアル化されたときに「余分な」プロパティがファイルに含まれるのを防ぐことができます。
第二に、彼らは私がやろうとしていることよりも永続的です。最終的には、この時点ではなく、ファイル全体を逆シリアル化したいと思います。ユーザーがインポート用に選択するファイルの要約リストを表示しようとしています。インポート中に、私はすべての子供と孫が必要になります。手順1ではやり過ぎです。これらは潜在的に大きなファイルであるため、ヘッダー情報を表示できるようにいくつかのファイルを完全に逆シリアル化しても機能しません。
うまくいけば、それは元の質問についての混乱を解消します。