DataContract vs Serializable - действительно ли имеет значение, хотите ли вы сериализовать как можно эффективнее (настраиваемый двоичный файл)? - PullRequest
1 голос
/ 06 октября 2011

В принципе, если я отмечу свои классы как [DataContract], могу ли я написать свой собственный сериализатор, который расширяется от XmlObjectSerializer, который возвращает двоичный файл таким же образом, как если бы я сделал [Serializable]?

1 Ответ

1 голос
/ 07 октября 2011

Да, вы можете, но помните, что сериализатор, если наследуется от XmlObjectSerializer, будет иметь дело с XML. Какой писатель / читатель XML вы используете, будет определять, используете ли вы двоичное представление или нет. Один «двоичный» XML-ридер / писатель - это тот, который создан XmlDictionaryReader.CreateBinaryReader и XmlDictionaryWriter.CreateBinaryWriter.

Сообщение в http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/29/wcf-extensibility-icontractbehavior.aspx содержит пример, показывающий пользовательский XmlObjectSerializer, который при использовании с бинарным модулем записи XML может сериализовать объекты до довольно небольшого размера.

...