Недавно я столкнулся с сценарием, когда один из наших разработчиков добавил объект к нашему контракту с данными, который не был помечен как элемент данных. Мы используем DataContractSerializer для хранения файла конфигурации для части оборудования, которое мы контролируем. Очевидно, операция сериализации не удалась.Как сделать DataContractSerializer более безопасным?
Основная проблема, которая была обнаружена, заключалась в том, что файл конфигурации был уничтожен во время процесса. Кто-нибудь знает, как убедиться, что граф объекта будет сериализован, прежде чем пытаться его сериализовать?
Трассировка стека из исключения сериализации не выполняется при вызове XmlObjectSerializerContext.CheckIfTypeSerializable (..) Мне интересно, есть ли что-то подобное, что я могу использовать до того, как попытаться выполнить сериализацию.
Я хотел бы избежать того, чтобы поток графа в память, а затем в файл, но я предполагаю, что это будет работать ...
Есть предложения?
Это была сериализация, которая не удалась. Приложение попыталось сохранить обновление в файле конфигурации. Это не удалось, но не до того, как вы повредили файл на диске. –