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