Изменение сообщения корневого узла ответа JSON в WCF - PullRequest
1 голос
/ 14 июня 2010

Я создал REST GetTime Service в WCF, и служба возвращает JSON в качестве ответного сообщения.Также WebMessageBodyStyle установлен в обернутый, поэтому у него будет идентификатор, связанный с теми данными, которые он возвращает.Но когда я использую Fiddler для тестирования своего сервиса, строка ответа выглядит так:

{"GetTimeResult":"2010614104013"}

Поскольку ответом над идентификатором строки является GetTimeResult, мне интересно, есть ли способ изменить этот бит теста наметка времени.Так это выглядит так:

{"timestamp":"2010614104013"}

Ура.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Как указано в этой статье , предположим, что вы не используете элемент данных явно в контракте данных и хотите вернуть, скажем, отметку времени в качестве простой строки для ответа.Просто используйте аннотацию [return: MessageParameter(Name = "timestamp")] с вашим методом операционного контракта:

[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/timestamps", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
[return: MessageParameter(Name = "timestamp")]
string GetStringTimestamp();
0 голосов
/ 14 июня 2010

Если вы используете атрибуты DataContract / DataMember в своем коде, вы добавляете имя (а также некоторые другие именованные параметры).

[DataMember(Name = "timestamp")]
public string GetTimeResult
...