Автоматический выбор формата

Данный образец демонстрирует включение автоматического выбора формата (XML или JSON) при использовании программной модели Windows Communication Foundation (WCF) REST, а также явное задание формата в коде операции.

Подробные сведения об образце

Образец состоит из службы, а также клиентского кода, производящего запросы к этой службе. Служба поддерживает единственную операцию HTTP GET (EchoWithGet) и единственную операцию HTTP POST (EchoWithPost). Обе операции ожидают на входе строку и возвращают в ответе эту же строку. В случае операции GET строка предоставляется в виде параметра строки запроса URI. В случае операции POST строка предоставляется в тексте запроса, сериализованного в XML. Служба может возвращать ответы в формате XML или JSON, используя новую возможность автоматического выбора формата или старую возможность принудительного выбора формата .NET Framework, версия 4.

В данном образце включение автоматического выбора формата осуществляется с помощью файла App.config. Атрибуту automaticFormatSelectionEnabled конечной точки HTTP по умолчанию задано значение true. Если автоматический выбор формата включен, то инфраструктура WCF выбирает наиболее подходящий формат ответа (XML или JSON) на основе заголовков запроса HTTP Accept или Content-Type. Для использования этой новой возможности разработчику не требуется предоставлять дополнительный программный код или параметры конфигурации. Необходимо лишь задать атрибуту automaticFormatSelectionEnabled значение true. В клиентском коде в файле Program.cs запросы отправляются как к операции GET, так и к операции POST службы. При этом заголовок HTTP Accept указывает либо «application/xml», либо «application/json», и служба возвращает ответ в соответствующем формате.

Также в операции GET можно использовать принудительный выбор формата. Операция GET проверяет наличие необязательного параметра строки запроса format, и если он найден, задает формат ответа в свойстве OutgoingResponse. Принудительное задание формата ответа в этом случае переопределяет автоматический выбор формата, производимый инфраструктурой WCF.

Образец состоит из резидентной службы и клиента, который работает в консольном приложении. Во время выполнения консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.

Использование этого образца

  1. Откройте решение образца «Automatic Format Selection». Для успешного выполнения образца среду Visual Studio 2010 необходимо запускать от имени администратора. Для этого щелкните правой кнопкой мыши значок Visual Studio 2010 и выберите в контекстном меню команду Запуск от имени администратора.

  2. Нажмите клавишу F6 для построения решения, затем нажмите сочетание клавиш Ctrl+F5 для запуска консольного приложения проекта AutomaticFormatSelection. Открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы.

  3. Во время выполнения образца клиент отправляет запросы к службе и выводит ответы в окно консоли. Обратите внимание на различные форматы ответов: XML и JSON.

  4. Чтобы завершить образец, нажмите любую клавишу.

Ee662964.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Web\AutomaticFormatSelection