Сериализация веб-сервиса ASP.Net - PullRequest
1 голос
/ 01 июля 2010

Может ли кто-нибудь здесь указать мне правильное направление о том, как я могу переопределить сериализацию, которая происходит, когда вызывается мой веб-сервис?

По сути, конечный результат, к которому я стремлюсь, - это добавление TIMESTAMP ко всем объектам, возвращаемым из моего веб-сервиса, но только тогда, когда в моем веб-сервисе используется JavascriptSerializer, а не сериализатор XML.

Так, например, ниже приведен метод, который содержится в моем веб-сервисе.

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=True)> _
Public Function GetSettingData(ByVal Username As String, ByVal Password As String) As SettingList

Когда веб-сервис вызывается (как запрос GET), в какой-то момент вызывается JavascriptSerializer, и мои объекты анализируются и выводятся как JSON. Я предполагаю, что где-то во время этого вызова я могу вставить свою собственную версию JavascriptSerializer и сделать, как требуется?

Кто-нибудь может направить меня сюда?

(PS: я хорошо знаю, что могу возвращать строки со всех моих веб-сервисов и выполнять сериализацию в соответствии с требованиями фактического вызова веб-метода, но я ищу «лучшее» решение, чем то (кроме того, это означало бы, что мне понадобится разные методы, если я хочу вернуть XML))

1 Ответ

1 голос
/ 01 июля 2010

Вы можете использовать Stream или Message классы в качестве возвращаемых типов, тогда вы можете реализовать свою собственную сериализацию.См., Например, Как установить Json.Net в качестве сериализатора по умолчанию для службы REST WCF в качестве примера.

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