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

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

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

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

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

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

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

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

Пример

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

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);
}


<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

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

См. также