Condividi tramite


Esercitazione: implementare un contratto di servizio di Windows Communication Foundation

Questa esercitazione descrive la seconda delle cinque attività necessarie per creare un'applicazione Windows Communication Foundation (WCF) di base. Per una panoramica delle esercitazioni, vedere Esercitazione: Introduzione alle applicazioni Windows Communication Foundation.

Il passaggio successivo per la creazione di un'applicazione WCF consiste nell'aggiungere codice per implementare l'interfaccia del servizio WCF creata nel passaggio precedente. In questo passaggio viene creata una classe denominata CalculatorService che implementa l'interfaccia definita dall'utente ICalculator. Ogni metodo nel codice seguente chiama un'operazione della calcolatrice e scrive testo nella console per testarlo.

In questa esercitazione apprenderai a:

  • Aggiungere il codice per implementare il contratto di servizio WCF.
  • Compilare la soluzione.

Aggiungere il codice per implementare il contratto di servizio WCF

In GettingStartedLib aprire il file Service1.cs o il file Service1.vb e sostituirne il codice con quello seguente:

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

Modificare il file app.config

Modificare App.config in GettingStartedLib per rispecchiare le modifiche apportate al codice.

  • Per Visual C# (progetti):

    • Modificare la riga 14 in <service name="GettingStartedLib.CalculatorService">
    • Modificare la riga 17 in <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Modificare la riga 22 in <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Per i progetti di Visual Basic:

    • Modificare la riga 14 in <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Modificare la riga 17 in <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Modificare la riga 22 in <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Compilare il codice

Compilare la soluzione per verificare che non siano presenti errori di compilazione. Se si usa Visual Studio, nel menu Compila selezione Compila soluzione (oppure premere CTRL+MAIUSC+B).

Passaggi successivi

Questa esercitazione ha descritto come:

  • Aggiungere il codice per implementare il contratto di servizio WCF.
  • Compilare la soluzione.

Passare all'esercitazione successiva per informazioni su come eseguire il servizio WCF.