Я также хотел бы услышать ответы на этот вопрос от людей с большим опытом, чем я сам.
Я лично реализовал несколько форматов файлов для своей работы и перешел на использование формата файлов XML. Мои требования и аппаратное обеспечение, с которым я постоянно взаимодействую, меняются, и я не могу сказать, что мне нужно будет добавить в формат в будущем. Одним из основных преимуществ XML является то, что он полуструктурирован . По этой причине я обычно избегаю автоматической сериализации XML, предоставляемой .NET, потому что считаю, что она заставляет ожидать точный формат.
Моя цель состояла в том, чтобы создать формат XML, который позволял бы добавлять новые элементы и атрибуты в будущем и чтобы порядок тегов не имел значения, когда это возможно. Если вы уверены, что можете загрузить весь файл в память, XPATH , вероятно, является хорошим выбором.
Если вы имеете дело с особенно большими файлами или по другим причинам не можете загрузить файл сразу, тогда вам, вероятно, придется использовать XmlStreamReader и сканировать на наличие известных элементов, а затем возвращаться в эти элементы с помощью ReadSubtree и сканировать снова ...
BinaryFormatter
.