Как создавать службы с помощью интерфейса контракта
Контракты Windows Communication Foundation (WCF) рекомендуется создавать с помощью интерфейса. Такой контракт определяет набор и структуру сообщений, необходимых для доступа к операциям, предлагаемым службой. Этот интерфейс определяет типы входных и выходных данных путем применения класса ServiceContractAttribute к интерфейсу и класса OperationContractAttribute к методам, которые требуется предоставить.
Дополнительные сведения контрактах службы см. в разделе Создание контрактов служб.
Создание контракта WCF с интерфейсом
Создайте новый интерфейс с использованием языка Visual Basic, C# или другого языка среды CLR.
Примените класс ServiceContractAttribute к интерфейсу.
Определите методы интерфейса.
Примените класс 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, по умолчанию используют шаблон обмена сообщениями "запрос-ответ". Дополнительные сведения б этом шаблоне обмена сообщениями см. в разделе Как создать контракт типа «запрос-ответ». Кроме того, можно создать и использовать другие шаблоны сообщений путем задания свойств атрибута. Дополнительные примеры см. в разделах Как создать односторонний контракт и Как создавать дуплексный контракт.