У меня есть довольно большой объектный граф, который я сериализовал в файл через DataContractSerializer. Теперь я хочу представить список этих файлов пользователю на выбор. В этом списке я хочу показать некоторые подробности о файле, которые являются свойствами корневого объекта. Я не хочу загружать весь график в память, так как меня интересует только отображение свойств корневого узла.
Кто-нибудь знает способ управления «глубиной» десериализации, чтобы я мог просто извлечь корневой объект из файла и пропустить дочерние элементы? Я бы предпочел не рассматривать файл как необработанный XML, так как я не делаю никаких необработанных манипуляций с XML где-либо еще, и это будет еще одна ветвь кода, которую я должен синхронизировать.
Моя единственная идея сейчас состоит в том, чтобы создать совместимый «сводный» объект, содержащий только интересующие меня свойства и ни одного из дочерних элементов, и десериализовать файл в него. Это должно пропустить детей, поскольку они не имеют отношения к объекту резюме.
Есть ли лучший способ сделать это?
Обновление / уточнение : Атрибуты не тот ответ, который я ищу. Во-первых, они будут предотвращать попадание «лишних» свойств в файл при первой сериализации объекта.
Во-вторых, они более постоянны, чем то, что я пытаюсь сделать. В конце концов, я хочу десериализовать весь файл, но не сейчас. Я пытаюсь показать сводный список файлов, которые пользователь выберет для импорта. Во время импорта мне понадобятся все дети и внуки. Это просто избыточно на шаге 1. Это потенциально большие файлы, поэтому полная десериализация некоторых из них просто для того, чтобы я мог отобразить информацию их заголовков, не сработает.
Надеюсь, это устранит путаницу в исходном вопросе.