Заставить WCF использовать NetDataContractSerializer\DataContractSerializer

Как я могу указать определенной службе WCF использовать DataContractSerializer или NetDataContractSerializer?

Предположим, у меня получится, будет ли сгенерированный прокси автоматически идентифицировать его и использовать правильный?

1 ответ

Решение

DataContractSerializer используется по умолчанию. На стороне сервиса вы можете контролировать используемые сериализаторы с поведением. По умолчанию у вас есть в наличии DataContractFormat а также XmlSerializerFormat атрибуты для этого. Эти атрибуты могут применяться к контракту на обслуживание, реализации сервиса или операциям. На стороне клиента svcutil будет использовать сериализацию контракта данных, если описание типов сериализуемо DataContractSerializer в противном случае он будет использовать XmlSerializer,

NetDataContractSerializer не подготовлено поведение - вы должны создать его сами. Это также не распознается клиентами, потому что, когда вы используете NetDataContractSerializer вы будете делиться сборками с типами (контракты на данные, сервисные контракты) с клиентом, чтобы вы могли также поделиться поведением и пометить сервисный контракт с этим поведением напрямую.

Другие вопросы по тегам