Como: Criar um contrato do Windows Communication Foundation com uma classe
A maneira preferida de criar um contrato do Windows Communication Foundation (WCF) é usando uma interface. Para obter mais informações, consulte Como definir um contrato de serviço. Uma alternativa, descrita aqui, é criar uma classe e, em seguida, aplicar o ServiceContractAttribute atributo à classe diretamente e o OperationContractAttribute atributo a cada um dos métodos na classe que fazem parte do contrato.
Aviso
[ServiceContract]
e [ServiceContractAttribute]
fazer a mesma coisa. A mesma coisa é verdade para [OperationContract]
e [OperationContractAttribute]
. Em cada caso, a primeira é uma abreviatura para a segunda.
Para obter mais informações sobre contratos de serviço, consulte Projetando contratos de serviço.
Criando um contrato do Windows Communication Foundation com uma classe
Crie uma nova classe usando Visual Basic, C# ou qualquer outra linguagem de tempo de execução de linguagem comum.
Aplique a ServiceContractAttribute classe à classe.
Crie métodos na classe.
Aplique a OperationContractAttribute classe a cada método que deve ser exposto como parte do contrato WCF público.
Exemplo
O exemplo de código a seguir mostra uma classe que define um contrato de serviço.
[ServiceContract]
public class CalculatorService
{
[OperationContract]
public double Add(double n1, double n2)
{
return n1 + n2;
}
[OperationContract]
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
[OperationContract]
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
[OperationContract]
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
<ServiceContract()> _
Public Class CalculatorService
<OperationContract()> _
Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 + n2
End Function
<OperationContract()> _
Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 - n2
End Function
<OperationContract()> _
Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 * n2
End Function
<OperationContract()> _
Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 / n2
End Function
End Class
Os métodos que têm a OperationContractAttribute classe aplicada usam um padrão de mensagem de solicitação-resposta por padrão. Para obter mais informações sobre esse padrão de mensagem, consulte Como criar um contrato de solicitação-resposta. Você também pode criar e usar outros padrões de mensagem definindo propriedades do atributo. Para obter mais exemplos, consulte Como criar um contrato unidirecional e Como criar um contrato duplex.