С точки зрения WCF, мы можем общаться с сервером и клиентом через сообщения.Для передачи сообщений и с точки зрения безопасности нам необходимо создать данные / сообщение в сериализованном формате.
Для сериализации данных мы используем атрибуты [datacontract] и [datamember]. Inваш случай, если вы используете datacontract
WCF использует DataContractSerializer
иначе WCF использует XmlSerializer
, который является методом сериализации по умолчанию.
Позвольте мне объяснить подробно:
в основном WCF поддерживает 3 типасериализации:
- XmlSerializer
- DataContractSerializer
- NetDataContractSerializer
XmlSerializer : - Порядок по умолчанию такой же, каккласс
DataContractSerializer / NetDataContractSerializer : - Порядок по умолчанию: алфавитный
XmlSerializer : - XML-схема обширна
DataContractSerializer / NetDataContractSerializer : - XML-схема ограничена
XmlSerializer : - Поддержка версий невозможна
DataContractSerializer / NetDataContractSerializer : - возможна поддержка версий
XmlSerializer : - совместимость с ASMX
DataContractSerializer / NetDataContractSerializer : - совместимость с.NET Remoting
XmlSerializer : - Атрибут не требуется в XmlSerializer
DataContractSerializer / NetDataContractSerializer : - Атрибут, необходимый для этой сериализации
так что вы используете, зависит от ваших требований ...