Когда следует использовать сериализацию XML? - PullRequest
3 голосов
/ 14 июля 2010

Я немного читал о сериализации XML и, насколько я понимаю, это способ взять объект и сохранить состояние в файле.Что касается реализации, то она выглядит достаточно проста, и, кажется, существует масса ресурсов для ее применения.Когда следует использовать сериализацию XML?Каковы преимущества?Какие ситуации лучше всего помогают при использовании этого?

Ответы [ 5 ]

3 голосов
/ 15 июля 2010

.NET XmlSerializer класс - не единственный способ сохранить объект в XML. Более новый DataContractSerializer работает быстрее, а также позволяет сохранить объект в двоичной форме XML, которая является более компактной.

В наши дни XmlSerializer получает только ограниченные исправления ошибок, отчасти потому, что так много кода зависит от точных деталей его работы, отчасти потому, что он связан с веб-службами ASMX, которые Microsoft считает " устаревшие технологии ".

Это не относится к DataContractSerializer, который продолжает оставаться яркой и важной частью WCF.

2 голосов
/ 14 июля 2010

Вы ответили немного на вопрос в своем посте.Это здорово для сохранения состояния объекта.Я использовал его в приложениях для сохранения пользовательских настроек.Это также отличный способ отправки данных в другие системы, поскольку он стандартизирован.Важно помнить, что он легко читается человеком.Это может быть как хорошо, так и плохо, в зависимости от вашей ситуации.Возможно, вы захотите зашифровать его или использовать зашифрованную двоичную сериализацию, если вы не хотите, чтобы кто-то еще мог его понять.

РЕДАКТИРОВАТЬ:
Еще один момент, о котором стоит упомянуть, - это то, что .NET реализован XMLSerializer только сериализует открытых членов в объекте.Если вам нужно сохранить частных или защищенных членов, вам нужно будет использовать настроенный сериализатор или использовать другую форму сериализации.

1 голос
/ 14 июля 2010

Хорошо для связи между разрозненными системами. НАПРИМЕР. возьмите приложение Java и приложение C # и разрешите им обмениваться данными через веб-сервис с сериализуемыми объектами XML. Оба приложения понимают XML и защищены от деталей другого языка. И да, хотя вы можете запускать строки взад и вперед, XML дает нам строгую типизацию и проверку схемы.

0 голосов
/ 15 августа 2010

Я отправляю массив Объектов типа класса, который я написал, используя HttpWebRequest, поэтому я не могу отправить его как объект, потому что я смешиваю HttpWebRequest + Soap (который я пишу), а в Soap вы не можете отправить не предопределенные Объекты какString, int, ....

, поэтому я использовал сериализацию XML для преобразования своего объекта в строку XML и отправки его через мой HttpWebRequest.

0 голосов
/ 14 июля 2010

это только из личного опыта - сериализация XML хороша для веб-сервисов. Кроме того, если вы хотите изменить (или разрешить изменение) объект / файл, который вы храните, без использования приложения, которое вы пишете (т.е. стороннего приложения), XML может быть хорошим выбором.

...