Реализация контрактов служб
Служба — это класс, который предоставляет клиентам имеющиеся функциональные возможности в одной или нескольких конечных точках. Для создания службы необходимо создать класс, реализующий контракт Windows Communication Foundation (WCF). Это можно сделать одним из двух способов. Во-первых, можно определить контракт отдельно в качестве интерфейса, а затем создать класс, реализующий этот интерфейс. Во-вторых, можно непосредственно создать класс и контракт, разместив атрибут ServiceContractAttribute в самом классе, а атрибут OperationContractAttribute — в методах, доступных клиентам службы.
Создание класса службы
Ниже приведен пример службы, реализующей отдельно определенный контракт IMath.
// Define the IMath contract.
[ServiceContract]
public interface IMath
{
[OperationContract]
double Add(double A, double B);
[OperationContract]
double Multiply (double A, double B);
}
// Implement the IMath contract in the MathService class.
public class MathService : IMath
{
public double Add (double A, double B) { return A + B; }
public double Multiply (double A, double B) { return A * B; }
}
Кроме того, контракт может непосредственно предоставляться службой. Ниже приведен пример класса службы, который определяет и реализует контракт MathService.
// Define the MathService contract directly on the service class.
[ServiceContract]
class MathService
{
[OperationContract]
public double Add(double A, double B) { return A + B; }
[OperationContract]
private double Multiply (double A, double B) { return A * B; }
}
Обратите внимание, что описанные службы предоставляют разные контракты, так как имена контрактов различаются. В первом случае предоставленный контракт называется "IMath", а во втором — "MathService".
Некоторые свойства (такие как параллелизм и создание экземпляров) можно задать на уровне реализации службы и операции. Дополнительные сведения см. в разделе Проектирование и реализация служб.
После реализации контракта службы необходимо создать для службы одну или более конечных точек. Дополнительные сведения см. в разделе Общие сведения о создании конечных точек. Дополнительные сведения выполнении службы см. в разделе Размещение служб.
См. также
Задачи
Как создавать контракт Windows Communication Foundation с помощью класса
Как создавать службы с помощью интерфейса контракта
Основные понятия
Проектирование и реализация служб
Указание поведения службы во время выполнения