Esercitazione: Definire un contratto di servizio di Windows Communication Foundation

Questa esercitazione descrive le prime 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.

Quando si crea un servizio WCF, la prima attività consiste nel definire un contratto di servizio. Il contratto di servizio specifica le operazioni supportate dal servizio. Un'operazione può essere considerata un metodo del servizio Web. Per creare contratti di servizio, definire un'interfaccia C# o Visual Basic. Un'interfaccia ha le caratteristiche seguenti:

  • Ogni metodo dell'interfaccia corrisponde a un'operazione di servizio specifico.
  • Per ogni interfaccia, è necessario applicare l'attributo ServiceContractAttribute.
  • Per ogni operazione/metodo, è necessario applicare l'attributo OperationContractAttribute.

In questa esercitazione apprenderai a:

  • Creare un progetto Libreria di servizi WCF.
  • Definire un'interfaccia del contratto di servizio.

Creare un progetto libreria di servizi WCF e definire un'interfaccia del contratto di servizio

  1. Aprire Visual Studio come amministratore. A tale scopo, selezionare il programma Visual Studio nel menu Start e quindi selezionare Altro>Esegui come amministratore dal menu di scelta rapida.

  2. Creare un progetto Libreria di servizi WCF.

    1. Scegliere Nuovo>Progetto dal menu File.

    2. Nella finestra di dialogo Nuovo progetto, sul lato sinistro, espandere Visual C# o Visual Basic e quindi selezionare la categoria WCF. Visual Studio visualizza un elenco di modelli di progetto nella sezione centrale della finestra. Selezionare Libreria di servizi WCF.

      Nota

      Se non viene visualizzata la categoria del modello del progetto WCF, potrebbe essere necessario installare il componenteWindows Communication Foundation di Visual Studio. Nella finestra di dialogo Nuovo progetto selezionare il collegamento Apri programma di installazione di Visual Studio a sinistra. Selezionare la scheda Singoli componenti e quindi trovare e selezionare Windows Communication Foundation nella categoria Attività di sviluppo. Scegliere Modifica per iniziare l'installazione del componente.

    3. Nella sezione inferiore della finestra immettere GettingStartedLib come Nome e GettingStarted come Nome della soluzione.

    4. Seleziona OK.

      Visual Studio crea il progetto, con tre file: IService1.cs (o IService1.vb per un progetto Visual Basic), Service1.cs (o Service1.vb per un progetto Visual Basic) e App.config. Visual Studio definisce questi file come segue:

      • Il file IService1 contiene la definizione predefinita del contratto di servizio.
      • Il file Service1 contiene l'implementazione predefinita del contratto di servizio.
      • Il file App.config contiene le informazioni di configurazione necessarie per caricare il servizio predefinito con lo strumento host del servizio WCF di Visual Studio. Per altre informazioni sullo strumento host del servizio WCF, vedere Host del servizio WCF (WcfSvcHost.exe).

      Nota

      Se Visual Studio è stato installato con le impostazioni dell'ambiente di sviluppo di Visual Basic, la soluzione potrebbe essere nascosta. In questo caso, selezionare Opzioni dal menu Strumenti, quindi selezionare Progetti e soluzioni>Generale nella finestra Opzioni. Selezionare Mostra sempre soluzione. Verificare inoltre che l'opzione Salva nuovi progetti al momento della creazione sia selezionata.

  3. Da Esplora soluzioni aprire il file IService1.cs o IService1.vb e sostituirlo con il codice seguente:

    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
    

    Questo contratto definisce una calcolatrice online. Si noti che l'interfaccia ICalculator è contrassegnata con l'attributo ServiceContractAttribute (semplificato come ServiceContract). Questo attributo definisce uno spazio dei nomi per evitare ambiguità nel nome del contratto. Il codice contrassegna ogni operazione calcolatrice con l'attributo OperationContractAttribute (semplificato come OperationContract).

Passaggi successivi

Questa esercitazione ha descritto come:

  • Creare un progetto Libreria di servizi WCF.
  • Definire un'interfaccia del contratto di servizio.

Passare all'esercitazione successiva per informazioni su come implementare il contratto di servizio WCF.