Tutorial: Como definir um contrato de serviço do Windows Communication Foundation
Este tutorial descreve a primeira de cinco tarefas necessárias para criar um aplicativo básico do Windows Communication Foundation (WCF). Para obter uma visão geral dos tutoriais, consulte Tutorial: Introdução aos aplicativos do Windows Communication Foundation.
Ao criar um serviço WCF, sua primeira tarefa é definir um contrato de serviço. O contrato de serviço especifica a quais operações o serviço dá suporte. Uma operação pode ser considerada como um método de serviço Web. Você cria contratos de serviço definindo uma interface C# ou Visual Basic. Uma interface tem as seguintes características:
- Cada método na interface corresponde a uma operação de serviço específica.
- Para cada interface, você deve aplicar o atributo ServiceContractAttribute.
- Para cada operação/método, você deve aplicar o atributo OperationContractAttribute.
Neste tutorial, você aprenderá a:
- Criar um projeto da Biblioteca de Serviços WCF.
- Definir uma interface de contrato de serviço.
Criar um projeto da Biblioteca de Serviços WCF e definir uma interface de contrato de serviço
Abra o Visual Studio como administrador. Para fazer isso, selecione o programa do Visual Studio no menu Iniciar e selecione Mais>Executar como administrador no menu de atalho.
Criar um projeto da Biblioteca de Serviços WCF.
No menu Arquivo, selecione Novo>Projeto.
Na caixa de diálogo Novo Projeto, no lado esquerdo, expanda Visual C# ou Visual Basic e selecione a categoria WCF. O Visual Studio exibe uma lista de modelos de projeto na seção central da janela. Selecione Biblioteca de Serviços WCF.
Observação
Se você não vir a categoria de modelo do projeto WCF, talvez seja necessário instalar o componente Windows Communication Foundation do Visual Studio. Na caixa de diálogo Novo Projeto, selecione o link Abrir o Instalador do Visual Studio no lado esquerdo. Selecione a guia Componentes individuais e, em seguida, localize e selecione Windows Communication Foundation na categoria Atividades de desenvolvimento. Escolha Modificar para começar a instalar o componente.
Na seção inferior da janela, insira GettingStartedLib para o Nome e GettingStarted para o Nome da solução.
Selecione OK.
O Visual Studio cria o projeto, que tem três arquivos: IService1.cs (ou IService1.vb para um projeto do Visual Basic), Service1.cs (ou Service1.vb para um projeto do Visual Basic) e App.config. O Visual Studio define esses arquivos da seguinte maneira:
- O arquivo IService1 contém a definição padrão do contrato de serviço.
- O arquivo Service1 contém uma implementação padrão do contrato de serviço.
- O arquivo App.config contém as informações de configuração necessárias para carregar o serviço padrão com a ferramenta de Host de Serviço WCF do Visual Studio. Para obter mais informações sobre a ferramenta de Host do Serviço WCF, consulte Host de Serviço WCF (WcfSvcHost.exe).
Observação
Se você instalou o Visual Studio com configurações de ambiente de desenvolvedor do Visual Basic, a solução pode estar oculta. Se esse for o caso, selecione Opções no menu Ferramentas e selecione Projetos e Soluções>Geral na janela Opções. Selecione Sempre mostrar solução. Além disso, verifique se Salvar novos projetos quando criado está selecionado.
Em Gerenciador de Soluções, abra o arquivo IService1.cs ou IService1.vb e substitua seu código pelo seguinte código:
using System; using System.ServiceModel; namespace GettingStartedLib { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] public interface ICalculator { [OperationContract] double Add(double n1, double n2); [OperationContract] double Subtract(double n1, double n2); [OperationContract] double Multiply(double n1, double n2); [OperationContract] double Divide(double n1, double n2); } }
Imports System.ServiceModel Namespace GettingStartedLib <ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _ Public Interface ICalculator <OperationContract()> _ Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double <OperationContract()> _ Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double <OperationContract()> _ Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double <OperationContract()> _ Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double End Interface End Namespace
Este contrato define uma calculadora online. Observe que a interface do
ICalculator
está marcada com o atributo ServiceContractAttribute (simplificado comoServiceContract
). Esse atributo define um namespace para remover a ambiguidade do nome do contrato. O código marca cada operação de calculadora com o atributo OperationContractAttribute (simplificado comoOperationContract
).
Próximas etapas
Neste tutorial, você aprendeu a:
- Criar um projeto da Biblioteca de Serviços WCF.
- Definir uma interface de contrato de serviço.
Avance para o próximo tutorial para saber como implementar o contrato de serviço WCF.