Tutorial: 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.
Quando você cria um serviço WCF, sua primeira tarefa é definir um contrato de serviço. O contrato de serviço especifica quais operações o serviço suporta. Uma operação pode ser pensada 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 da interface corresponde a uma operação de serviço específica.
- Para cada interface, você deve aplicar o ServiceContractAttribute atributo.
- Para cada operação/método, você deve aplicar o OperationContractAttribute atributo.
Neste tutorial, irá aprender a:
- Crie um projeto WCF Service Library .
- Defina uma interface de contrato de serviço.
Criar um projeto WCF Service Library e definir uma interface de contrato de serviço
Abra o Visual Studio como administrador. Para fazer isso, selecione o programa Visual Studio no menu Iniciar e, em seguida, selecione Mais>executar como administrador no menu de atalho.
Crie um projeto WCF Service Library .
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 WCF Service Library.
Nota
Se você não vir a categoria de modelo de 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 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, digite GettingStartedLib para o nome e GettingStarted para o nome da solução.
Selecione OK.
Visual Studio cria o projeto, que tem três arquivos: IService1.cs (ou IService1.vb para um projeto Visual Basic), Service1.cs (ou Service1.vb para um projeto Visual Basic) e App.config. 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 a 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 Visual Studio WCF Service Host. Para obter mais informações sobre a ferramenta WCF Service Host, consulte WCF Service Host (WcfSvcHost.exe).
Nota
Se você instalou o Visual Studio com configurações de ambiente de desenvolvedor do Visual Basic, a solução pode estar oculta. Se for esse o caso, selecione Opções no menu Ferramentas e, em seguida, selecione Projetos e Soluções>Gerais na janela Opções. Selecione Sempre mostrar solução. Além disso, verifique se a opção Salvar novos projetos quando criados está selecionada.
No 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
ICalculator
interface está marcada com o ServiceContractAttribute atributo (simplificado comoServiceContract
). Este atributo define um namespace para desambiguar o nome do contrato. O código marca cada operação da calculadora com o OperationContractAttribute atributo (simplificado comoOperationContract
).
Próximos passos
Neste tutorial, ficou a saber como:
- Crie um projeto WCF Service Library.
- Defina uma interface de contrato de serviço.
Avance para o próximo tutorial para aprender a implementar o contrato de serviço WCF.