Como: criar um contrato de resposta/solicitação
Um contrato de solicitação-resposta especifica um método que retorna uma resposta. A resposta deve ser enviada e correlacionada à solicitação nos termos deste contrato. Mesmo que o método não retorne nenhuma resposta (void
em C# ou um Sub
no Visual Basic), a infraestrutura criará e enviará uma mensagem vazia ao chamador. Para impedir o envio de uma mensagem de resposta vazia, use um contrato unidirecional para a operação.
Para criar um contrato de solicitação-resposta
Crie uma interface na linguagem de programação da sua escolha.
Aplicar o atributo ServiceContractAttribute à interface.
Aplique o atributo OperationContractAttribute a cada método que os clientes podem invocar.
Opcional. Defina o valor da propriedade IsOneWay para
true
para impedir o envio de uma mensagem de resposta vazia. Por padrão, todas as operações são contratos de solicitação-resposta.
Exemplo
A amostra a seguir define um contrato para um serviço de calculadora que fornece os métodos Add
e Subtract
. O método Multiply
não faz parte do contrato porque ele não é marcado pela classe OperationContractAttribute e, portanto, não é acessível aos clientes.
using System.ServiceModel;
[ServiceContract]
public interface ICalculator
{
[OperationContract]
// It would be equivalent to write explicitly:
// [OperationContract(IsOneWay=false)]
int Add(int a, int b);
[OperationContract]
int Subtract(int a, int b);
int Multiply(int a, int b)
}
Para obter mais informações sobre como especificar contratos de operação, consulte a classe OperationContractAttribute e a propriedade IsOneWay.
A aplicação dos atributos ServiceContractAttribute e OperationContractAttribute causa a geração automática de definições de contrato de serviço em um documento de WSDL depois que o serviço é implantado. O documento é baixado acrescentando-se
?wsdl
ao endereço básico de HTTP do serviço. Por exemplo,http://microsoft/CalculatorService?wsdl