Как изменить тип ответа wcf на основе параметра? - PullRequest
1 голос
/ 10 февраля 2011

Мой запрос на получение службы WCF выглядит следующим образом:

  1. .. / myservice.svc / поиск? Д = ключевые слова и оп = XML
  2. .. / myservice.svc / поиск? Д = ключевые слова и оп = * JSON 1006 *

поэтому, исходя из параметра op , тип ответа должен измениться. Как это сделать?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Здесь у вас есть сложная статья о настройке ответа в разных форматах.Если вы используете WCF 4, я бы определенно подумал о настройке automaticFormatSelectionEnabled = "true" в WebHttpBehavior.Он автоматически выберет формат ответа (XML или JSON) на основе заголовка HTTP Accept клиента.

2 голосов
/ 10 февраля 2011

Одним из способов будет WebGetAttribute: http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute.aspx

public class MyService
{
    [OperationContract]
    [WebGet(UriTemplate = "search?q={keyword}&op=xml")]
    string GetXml(string keyword);

    [OperationContract]
    [WebGet(UriTemplate = "search?q={keyword}&op=json")]
    string GetJson(string keyword);
}

примечание: выше не проверено

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