Поделиться через


Как создавать службы с помощью интерфейса контракта

Контракты Windows Communication Foundation (WCF) рекомендуется создавать с помощью интерфейса. Такой контракт определяет набор и структуру сообщений, необходимых для доступа к операциям, предлагаемым службой. Этот интерфейс определяет типы входных и выходных данных путем применения класса ServiceContractAttribute к интерфейсу и класса OperationContractAttribute к методам, которые требуется предоставить.

Дополнительные сведения контрактах службы см. в разделе Создание контрактов служб.

Создание контракта WCF с интерфейсом

  1. Создайте новый интерфейс с использованием языка Visual Basic, C# или другого языка среды CLR.

  2. Примените класс ServiceContractAttribute к интерфейсу.

  3. Определите методы интерфейса.

  4. Примените класс OperationContractAttribute к каждому методу, который требуется предоставить в рамках открытого контракта WCF.

Пример

В следующем примере кода показан интерфейс, определяющий контракт службы.

    <ServiceContract()> _
Public Interface ICalculator
        <OperationContract()> _
        Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
    End Interface
using System.ServiceModel; 

[ServiceContract] 
public interface ICalculator 
{ 
   [OperationContract]
   double Add(double n1, double n2);
   [OperationContract]
   double Subtract(double n1, double n2);
   [OperationContract]
   double Multiply(double n1, double n2);
   [OperationContract]
   double Divide(double n1, double n2);
}

Методы, к которым применен класс OperationContractAttribute, по умолчанию используют шаблон обмена сообщениями "запрос-ответ". Дополнительные сведения б этом шаблоне обмена сообщениями см. в разделе Как создать контракт типа «запрос-ответ». Кроме того, можно создать и использовать другие шаблоны сообщений путем задания свойств атрибута. Дополнительные примеры см. в разделах Как создать односторонний контракт и Как создавать дуплексный контракт.

См. также

Справочник

ServiceContractAttribute
OperationContractAttribute