Каково преимущество использования DataContractAttribute по SerializableAttribute?

Я нашел этому работу мои сервисы WCF обычно, когда включенные типы данных не имеют [DataContract], но [Serializable] вместо этого.

Но все учебные руководства WCF показывают первый вместо последнего. Почему?

8
задан Jader Dias 16 December 2009 в 01:46
поделиться

3 ответа

DataContractAttribute дает вам больше контроля над тем, что отправляется по сети, поэтому вы можете выбрать отправку только необходимых полей данной сущности. Serializable использует сериализацию платформы, которая предполагает .NET и одинаковые (или похожие) версии типов на обоих концах сети - он (обычно) сериализует все частные члены, состояния и т. Д. DCS предназначен для облегченного XML-типа. представление, над которым вы можете иметь некоторый контроль, а XmlSerializer предназначен для формата XML, над которым вы можете очень точно контролировать (данные атрибутов и т. д.).

11
ответ дан 5 December 2019 в 05:56
поделиться

Одним из преимуществ является то, что сериализатор DataContract работает намного быстрее, чем старый XmlSerializer.

Изменить: в примерах будет показан атрибут [DataContract], поскольку он предназначен для DataContractSerializer который использует WCF.

8
ответ дан 5 December 2019 в 05:56
поделиться

Недостаточно пометить класс с помощью [DataContract], у вас есть чтобы украсить поля, которые вы хотите сериализовать, также с помощью [DataMember].

Контракт данных - это модель сериализации с возможностью выбора, где сериализатор XML - это отказ.

9
ответ дан 5 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: