Создание сервиса WCF

Оценить
(0 голоса)

Теперь, когда вы знакомы со стандартным шаблоном проекта сервиса WCF, пришло время изучить создание сервиса WCF при помощи Visual Studio 2008. Описание: image527

Для примера разработаем WCF-версию сервиса CustomerProfile, который мы уже создали ранее в разделе Web-сервисов. Подобно тому сервису, данный сервис будет обращаться к объекту Customer, описанному в библиотеке BusinessEntities (см. листинг 19.1), а также коду реализации EntityServices (см. листинг 19.2). В последнем имеются методы для получения информации

0    клиенте из хранилища данных и для сохранения изменений этой информации. Вот те ша­ги, которые необходимо сделать для того, чтобы реализовать такую функциональность в виде сервиса WCF:

1.   Начните с создания нового проекта WCF Service Library. Назовите сервис CustomerPro­fileService (а его интерфейс — ICustomerProf ileService).

2.   Добавьте ссылки на библиотеки классов EntityServices и BusinessEntities (из предыдуще­го примера для Web-сервиса).

3.   Откройте файл ICustomerProfileService. Удалите из файла образцовый код и добавьте вместо него описания методов GetCustomerProf ile, SaveCustomer и DeleteCustomer. Каждое описание метода должно быть помечено атрибутом [OperationContract]. Ваш код должен быть похож на листинг 19.9.

 ICusfconwarBrofileSarvic©

using System;

using System.Collections.Generic; using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel; using System.Text; using BusinessEntities;

namespace WcfCustomerProfile {

[ServiceContract]

public interface ICustomerProfileService {

[OperationContract]

Customer GetCustomerProfile(string customerld);

[OperationContract]

void DeleteCustomer(string customerld);

[OperationContract]

void SaveCustomer(Customer customer);

}

}

4.   Затем откройте файл класса CustomerProfileService.es. Здесь вы будете реализовывать код интерфейса, описанного на предыдущем шаге. Для начала выделите реализацию ин-

терфейса iCustomerProfileService на уровне класса. Вы должны увидеть маленький смарт-тег. Щелкните по нему и выберите пункт Implement Interface 'ICustomerProfile­Service1. Это создаст заглушки для методов вашего сервиса. Затем добавьте код, аналогичный листингу 19.10.

using System;

using System.Collections.Generic; using System.Linq;

using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using BusinessEntities;

namespace WcfCustomerProfile {

public class CustomerProfileService : ICustomerProfileService {

public Customer GetCustomerProfile(string customerld) { EntityServices.CustomerProfile custProfile =

new EntityServices.CustomerProfile(); return custProfile.GetCustomer(customerld);

}

public void DeleteCustomer(string customerld) {

EntityServices.CustomerProfile custProfile = new

EntityServices.CustomerProfile(); custProfile.DeleteCustomer(customerld);

}

*

public void SaveCustomer(Customer customer) {

EntityServices.CustomerProfile custProfile =

new EntityServices.CustomerProfile(); custProfile.SaveCustomer(customer);

}

5.   Последний шаг — обозначить созданный вами в первом примере объект Customer как сериализуемый. Этот класс находился внутри библиотеки BusinessEntities. После этого WCF будет знать, что она может сериализовать данные внутри класса для передачи между клиентом и сервисом. Для этого используйте атрибуты DataContract пространства имен System. Runtime. Serialization (вам может понадобиться добавить ссылку на это пространство имен). Пометьте класс как DataContract, а каждое свойство— как DataMember. Код показан в листинге 19.11.

    

using System;

using System.Runtime.Serialization;

namespace BusinessEntities {

[DataContract] public class Customer {

[DataMember]

public string Id { get; set; }

[DataMember]

public string Name { get; set; }

[DataMember]

public string Email { get; set; }

[DataMember]

public string AddressLinel { get; set; }

[DataMember]

public string AddressLine2 { get; set; }

[DataMember]

public string City { get; set; }

[DataMember]

public string State { get; set; }

[DataMember]

public string PostalCode { get; set; }

[DataMember]

public string Phone { get; set; }

[DataMember]

public bool ContactEmail { get; set; } [DataMember]

public bool ContactPhone { get; set; }

}

}

Вот и все. Теперь у вас есть простой сервис WCF, для которого вы можете настроить кон­кретные конечные точки (для работы с различными вызывающими клиентами). Теперь мы посмотрим, как использовать Visual Studio для тестирования сервиса WCF.

Выполнение и тестирование вашего сервиса WCF
Настройка сервиса WCF
Использование сервиса WCF
Хостинг и развертывание сервиса WCF
Резюме

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.