Отправка сообщений JSON в службу WCF, когда DataContracts имеет иерархию наследования - PullRequest
0 голосов
/ 04 июня 2011

У меня есть веб-сервис wcf, настроенный для JSON. Но мои контракты данных имеют цепочку наследования. У меня есть контракт данных с именем RequestMessage и два других контракта данных, таких как Derived1 и Derived2 , которые получены из RequestMessage. В моем сервисном контракте есть сервисная операция, подобная этой BaseResponse GetResult (запрос BaseRequest) . Я оформляю контракт на обслуживание с KnownTypes. Это прекрасно работает при использовании с basicHttpBinding (любая привязка на основе SOAP). Будет ли это также работать при передаче сообщения JSON?

Сможет ли служба определить правильный тип объекта при отправке любого из объектов JSON Derived1 или Deerived2?

1 Ответ

3 голосов
/ 04 июня 2011

Вы, очевидно, используете полиморфные типы.Microsoft JSON, который используется для WCF, использует нестандартное расширение, где они добавляют информацию о типе в поле с именем __type.Если вы добавите это поле, оно, скорее всего, будет работать.

Подробную информацию о том, какое значение вы должны задать для клавиши __type, можно найти на этой странице MSDN в разделе «Дополнительные сведения».

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