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


Реализация сервисных контрактов

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

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

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

См. также