Compartilhar via


Implementando contratos de serviço

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

Criando uma classe de serviço

Veja a seguir um exemplo de um serviço que implementa um contrato IMath 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. Veja a seguir um exemplo de uma classe de serviço que define e implementa um contrato 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; }  
}  

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 simultaneidade e instanciação. Para obter mais informações, consulte Projetando e implementando serviços.

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

Confira também