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:

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

  1. 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.

  2. Crie um projeto WCF Service Library .

    1. No menu Arquivo, selecione Novo>projeto.

    2. 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.

    3. Na seção inferior da janela, digite GettingStartedLib para o nome e GettingStarted para o nome da solução.

    4. 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.

  3. 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 como ServiceContract). 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 como OperationContract).

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.