Как изменить Wcf, чтобы использовать другой сериализатор? - PullRequest
9 голосов
/ 29 октября 2010

По умолчанию WCF использует DataContractSerialization, поэтому, если мы можем изменить его, мой вопрос заключается в том, как изменить его и когда нам нужна какая сериализация на wcf?

Ответы [ 3 ]

6 голосов
/ 29 октября 2010

Вы можете использовать атрибут XmlSerializerFormatAttribute в контракте на обслуживание, чтобы WCF заставил использовать XmlSerializer.

4 голосов
/ 30 октября 2010

WCF имеет приятную особенность: метод может возвращать Message или Stream (см. Возвращение необработанного json (строки) в wcf и . Как установить Json.Net по умолчанию сериализатор для службы WCF REST в качестве примера). Соответствующий код, который вам нужно написать, может быть более простым, как если бы вы использовали более продвинутые приемы Расширение кодировщиков и сериализаторов . Таким образом, очень просто реализовать потоковую передачу сообщений , например, или просто вернуть файл JPG или Excel в результате какого-либо метода WCF.

1 голос
/ 29 октября 2010

Выбор по умолчанию DataContractSerializer подходит для большинства целей.Вы также можете использовать DataContractJsonSerializer специально для сервисов типа REST и если клиент ожидает тип контента Json.Другой вариант - XmlSerializer для возможности взаимодействия, если вам нужен больший контроль над сгенерированным XML.DataContractSerializer более эффективен, чем XmlSerializer.

В сторонних вариантах вы можете использовать protobuf-net от Google, который более эффективен, чем DataContract Serializer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...