Share via


Procedura: definire un contratto di servizio di Windows Communication Foundation

Questa è la prima delle sei attività necessarie per creare un servizio Windows Communication Foundation (WCF) di base e un client in grado di chiamare il servizio. Per una panoramica di tutte e sei le attività, vedere l'argomento Esercitazione introduttiva.

Quando si crea un servizio WCF di base, la prima attività consiste nel definire un contratto. Nel contratto vengono specificate le operazioni supportate dal servizio. Un'operazione può essere considerata un metodo del servizio Web. I contratti vengono creati definendo un'interfaccia C++, C# o VB. Ogni metodo nell'interfaccia corrisponde a un'operazione del servizio specifica. A ogni interfaccia deve essere applicato l'oggetto ServiceContractAttribute e a ogni operazione deve essere applicato l'oggetto OperationContractAttribute. Se un metodo in un'interfaccia che dispone di ServiceContractAttribute non dispone di OperationContractAttribute, tale metodo non viene esposto.

Nell'esempio riportato dopo la procedura, viene fornito il codice utilizzato per questa attività.

Per creare un contratto Windows Communication Foundation con un'interfaccia

  1. Aprire Visual Studio 2008 come amministratore facendo clic con il pulsante destro del mouse sul programma nel menu Start e selezionare Esegui come amministratore.

  2. Creare un nuovo progetto applicazione console. Nella finestra di dialogo Nuovo progetto, selezionare Visual Basic o Visual C#, quindi scegliere il modello Applicazione console e assegnargli il nome Service. Utilizzare il Percorso predefinito.

  3. Cambiare lo spazio dei nomi Service predefinito in Microsoft.ServiceModel.Samples.

  4. Aggiungere un riferimento a System.ServiceModel.dll al progetto:

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Riferimenti nella cartella del progetto e scegliere Aggiungi riferimento.
    2. Fare clic sulla scheda Sfoglia nella finestra di dialogo Aggiungi riferimento e passare a C:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation, quindi selezionare System.ServiceModel.dll e fare clic su OK.

    Nota

    Quando si utilizza un compilatore da riga di comando (ad esempio, Csc.exe o Vbc.exe), è necessario specificare anche il percorso agli assembly. Per impostazione predefinita, in un computer che esegue ad esempio Windows Vista, il percorso è Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation.

  5. Aggiungere un'istruzione using (Imports in Visual Basic) per lo spazio dei nomi System.ServiceModel:

  6. Definire una nuova interfaccia denominata ICalculator e applicare l'attributo ServiceContractAttribute all'interfaccia con un valore "http://Microsoft.ServiceModel.Samples" per Namespace. Una procedura consigliata è la specifica dello spazio dei nomi in modo esplicito perché impedisce che il valore dello spazio dei nomi predefinito venga aggiunto al nome del contratto.

    Nota

    Quando vengono utilizzati attributi per annotare un'interfaccia o una classe, è possibile eliminare la parte "Attributo" dal nome dell'attributo. In questo modo, ServiceContractAttribute diventa [ServiceContract]

  7. Dichiarare un metodo per ciascuna delle operazioni esposte dal contratto ICalculator (somma, sottrazione, moltiplicazione e divisione) all'interno dell'interfaccia e applicare l'attributo OperationContractAttribute a ogni metodo che si desidera esporre come parte del contratto WCF pubblico.

Esempio

Nell'esempio di codice seguente viene illustrata un'interfaccia di base che definisce un contratto di servizio.

Ora l'interfaccia è stata creata. Compilare il progetto per assicurarsi che non vi siano errori di compilazione, quindi continuare con Procedura: implementare un contratto di servizio di Windows Communication Foundation per implementare l'interfaccia. Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi all'esercitazione introduttiva.

Vedere anche

Attività

Procedura: implementare un contratto di servizio di Windows Communication Foundation

Riferimenti

ServiceContractAttribute
OperationContractAttribute

Altre risorse

Getting Started Sample
Self-Host