Partilhar via


Implementação de contratos de serviços

Um serviço é uma classe que expõe funcionalidades disponíveis para clientes em um ou mais endereços finais. Para criar um serviço, escreva uma classe que implemente um contrato do Windows Communication Foundation (WCF). Você pode fazer isso de duas maneiras. Você pode definir o contrato separadamente como uma interface e, em seguida, criar uma classe que implementa essa interface. Como alternativa, você pode criar a classe e o contrato diretamente, colocando o ServiceContractAttribute atributo na própria classe e o OperationContractAttribute atributo nos métodos disponíveis para os clientes do serviço.

Criando uma classe de serviço

Segue-se um exemplo de um serviço que implementa um IMath contrato que foi definido separadamente.

// 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; }  
}  

Como alternativa, um serviço pode expor um contrato diretamente. A seguir está um exemplo de uma classe de serviço que define e implementa um MathService contrato.

// 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; }  
}  

Observe que os serviços anteriores expõem contratos diferentes porque os nomes dos contratos são diferentes. No primeiro caso, o contrato exposto é denominado "IMath", enquanto no segundo caso o contrato é denominado "MathService".

Você pode definir algumas coisas nos níveis de implementação de serviço e operação, como concorrência e instanciação. Para obter mais informações, consulte Projetando e implementando serviços.

Depois de implementar um contrato de serviço, deve criar um ou mais endpoints para o serviço. Para obter mais informações, consulte Visão geral da criação de pontos de extremidade. Para obter mais informações sobre como executar um serviço, consulte Serviços de hospedagem.

Ver também