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