4 простых шага для использования сервиса WCF в Silverlight

4 простых шага для использования сервиса WCF в Silverlight

Введение

Эта статья рассказывает о 4 простых шагах, которые помогут вам использовать сервис WCF в приложении Silverlight. Здесь также приводится простой пример исходного кода, который демонстрирует все 4 шага на практике.

Шаг 1: Создание сервиса WCF 

Первым шагом будет создание вашего сервиса WCF. Когда мы создаем сервис WCF, по умолчанию он создает функцию ‘GetData’ , которая принимает целочисленное значение и возвращает строку с сообщением “Вы ввели 10” , в случае если вы передали значение ‘10’ в функцию. Мы попробуем использовать этот сервис

 public class Service1 : IService1
{
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
}

Шаг 2: Включение возможности междоменного вызова для вашего сервиса WCF

Для этого примера наш сервис WCF и веб-приложение Silverlight будут содержаться на разных веб-сайтах IIS. Другими словами, они будут содержаться в различных доменах. Когда мы говорим о различных веб-сайтах, имеется в виду, что они содержатся в разных доменах. Например, ваше веб-приложение Silverlight содержится на одном домене вида http://www.xyz.com/  и ваш сервис WCF содержится на другом домене, например http://www.pqr.com/.

Для сервиса WCF необходимо включить функцию междоменной связи, чтобы другие домены могли использовать сервис WCF.


Рисунок: междоменное соединение

Нам нужно создать два файла XML (clientaccesspolicy.xml и crossdomain.xml) в корневом каталоге сервиса WCF, чтобы подключить функцию междоменного соединения.
Ниже приведен фрагмент кода XML для clientaccesspolicy.xml:

<?xml version="1.0" encoding="utf-8" ?>

<access-policy>

<cross-domain-access>

<policy>

<allow-from http-request-headers="*">

<domain uri="*"/>

</allow-from>

<grant-to>

<resource include-subpaths="true" path="/"/>

</grant-to>

</policy>

</cross-domain-access>

</access-policy>

Ниже приведен фрагмент кода  XML для crossdomain.xml:

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM

         "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

<allow-http-request-headers-from domain="*" headers="*"/>

</cross-domain-policy>

Шаг 3:  Добавление ссылки на сервис WCF 

Создадим простое приложение на Silverlight и добавим ссылку на сервис в ваш проект Silverlight. Чтобы вызвать сервис WCF, нужно определить обработчики событий.

Процедура использования сервиса WCF состоит из трех шагов.

  • На первом шаге обратитесь (сошлитесь) к пространству имен.
  • На втором шаге создайте объект вашего сервиса WCF.
  • На последнем шаге нужно создать обработчик события, который будет получать результаты, отправленные сервисом WCF.

Важно заметить, что функция ‘GetData’ вызывается асинхронно.

Шаг 4: Вызов сервиса

В итоге компилируем программу и наблюдаем ее вывод.

Автор: Shivprasad Koirala

Загрузить исходный код - 571.72 KB