DataContractSerializer
не обязательно испускает «типичный» xml, и вы не имеете большого контроля над выводом. Тем не менее, он поддерживает полные графики, если вам нужно. Если вам нужен xml и вам не нужны полные графики, я бы предпочел XmlSerializer
- он позволит избежать написания какого-либо кода для ручного обхода данных (ala XmlDocument
или XDocument
), но при этом даст вам управление.
Одно предупреждение: XmlSerializer
предъявляет требования к вашему типу (общедоступный, общедоступный конструктор без параметров, ограниченный общедоступными членами, никаких обратных вызовов сериализации и т. Д.). Они обычно не являются проблемой.
Но тогда я все равно, вероятно, буду писать бинарный файл вместо xml; p (только не с BinaryFormatter
, который имеет .... kinks).