Tutorial: Implementar um contrato de serviço do Windows Communication Foundation

Este tutorial descreve a segunda 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.

A próxima etapa para criar um aplicativo WCF é adicionar código para implementar a interface de serviço do WCF que você criou na etapa anterior. Nesta etapa, você cria uma classe nomeada CalculatorService que implementa a interface ICalculator definida pelo usuário. Cada método no código a seguir chama uma operação de calculadora e grava texto no console para testá-lo.

Neste tutorial, você aprenderá a:

  • Adicione código para implementar o contrato do serviço WCF.
  • Compile a solução.

Adicionar código para implementar o contrato do serviço WCF

Em GettingStartedLib, abra o arquivo Service1.cs ou Service1.vb e substitua seu código pelo seguinte código:

using System;
using System.ServiceModel;

namespace GettingStartedLib
{
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            Console.WriteLine("Received Add({0},{1})", n1, n2);
            // Code added to write output to the console window.
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Subtract(double n1, double n2)
        {
            double result = n1 - n2;
            Console.WriteLine("Received Subtract({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            Console.WriteLine("Received Multiply({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            Console.WriteLine("Received Divide({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }
    }
}
Imports System.ServiceModel

Namespace GettingStartedLib

    Public Class CalculatorService
        Implements ICalculator

        Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
            Dim result As Double = n1 + n2
            ' Code added to write output to the console window.
            Console.WriteLine("Received Add({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result
        End Function

        Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Dim result As Double = n1 - n2
            Console.WriteLine("Received Subtract({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Dim result As Double = n1 * n2
            Console.WriteLine("Received Multiply({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
            Dim result As Double = n1 / n2
            Console.WriteLine("Received Divide({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function
    End Class
End Namespace

Editar App.config

Edite App.config em GettingStartedLib para refletir as alterações feitas no código.

  • Para projetos Visual C#:

    • Alterar a linha 14 para <service name="GettingStartedLib.CalculatorService">
    • Alterar a linha 17 para <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Alterar a linha 22 para <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Para projetos do Visual Basic:

    • Alterar a linha 14 para <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Alterar a linha 17 para <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Alterar a linha 22 para <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Compilar o código

Crie a solução para verificar se não há erros de compilação. Se você estiver usando o Visual Studio, no menu Compilar, selecione Criar solução (ou pressione Ctrl+Shift+B).

Próximas etapas

Neste tutorial, você aprendeu a:

  • Adicione código para implementar o contrato do serviço WCF.
  • Compile a solução.

Vá para o próximo tutorial para aprender a atualizar dados relacionados.