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


Реализация контрактов служб

Служба — это класс, который предоставляет клиентам имеющиеся функциональные возможности в одной или нескольких конечных точках. Для создания службы необходимо создать класс, реализующий контракт 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 с помощью класса
Как создавать службы с помощью интерфейса контракта

Основные понятия

Проектирование и реализация служб
Указание поведения службы во время выполнения