Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / Лабораторная работа 1 / ПКРПСиБД LAB1 Бочаров И.А..docx
Скачиваний:
34
Добавлен:
28.06.2014
Размер:
550.19 Кб
Скачать

Атрибут [ServiceContract]

Чтобы интерфейс CLR участвовал в службах, предоставленных WCF, он должен быть оснащен атрибутом [ServiceContract]. Подобно многим другим атрибутам .NET, тип ServiceContractAttribute поддерживает набор свойств для дальнейшего прояснения его назначения. Два свойства — Name и NameSpace — могут быть установлены для управления именем типа службы и именем пространства имен XML, определяющим тип службы. Если используется привязка, специфичная для веб-служб, эти значения применяются для определения элементов <portType> связанного документа WSDL.

Атрибут [OperationContract]

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

Конечные точки

В мире WCF термин конечная точка (endpoint) представляет адрес, привязку и контракт, объединенные вместе в один пакет. В XML конечная точка выражается элементом <endpoint> и элементамиaddress,bindingиcontract.

Каждая конечная точка состоит из следующего.

  • Адрес: адрес однозначно определяет конечную точку и указывает потенциальным потребителям на место расположения службы. В объектной модели WCF адрес представлен классом EndpointAddress. Класс EndpointAddress содержит следующее.

    • Свойство Uri, представляющее адрес службы.

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

  • Привязка. Привязка задает способ связи клиента с конечной точкой. В том числе следующее:

    • используемый транспортный протокол (например, TCP или HTTP);

    • используемую в сообщениях кодировку (например, текст или двоичное кодирование);

    • необходимые требования безопасности (например, безопасность сообщений SSL или SOAP).

  • Привязка в объектной модели WCF представлена абстрактным базовым классом Binding. В большинстве сценариев пользователи могут использовать только одну из предусмотренных системой привязок. Дополнительные сведения см. в разделе Привязки, предоставляемые системой.

  • Контракты. Контракты показывают, какие функциональные возможности дает клиенту конечная точка. В контракте задается следующее:

    • операции, которые могут быть вызваны клиентом;

    • форма сообщения;

    • тип входных параметров или данных, требуемых для вызова операции;

    • тип обработки или ответного сообщения, который может ожидать клиент.

  • Поведения. Поведения конечной точки можно использовать для настройки локального поведения конечной точки службы. Поведения конечной точки выполняют это путем участия в процессе создания среды выполнения WCF. Примером поведения является свойство ListenUri, позволяющее указывать отличный от адреса SOAP или WSDL адрес прослушивания.

Пример конфигурационного файла приведен ниже.

Выполнение лабораторной работы Реализация сервиса

IFibonacchiDuplex.Cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

namespace FibService

{

[ServiceContract(Namespace = "http://Bocharov.com", SessionMode = SessionMode.Required,

CallbackContract = typeof(IFibonacchiDuplexCallback))]

public interface IFibonacchiDuplex

{

[OperationContract(IsOneWay = true)]

void Clear();

[OperationContract(IsOneWay = true)]

void Fibonacchi(int n);

}

}