Tutorial: Definieren eines Windows Communication Foundation-Dienstvertrags
Dieses Tutorial umfasst die erste von fünf Aufgaben, die zum Erstellen einer einfachen WCF-Anwendung (Windows Communication Foundation) erforderlich sind. Eine Übersicht über die Tutorials finden Sie unter Tutorial: Erste Schritte mit Windows Communication Foundation-Anwendungen.
Wenn Sie einen WCF-Dienst erstellen, besteht Ihre erste Aufgabe darin, einen Dienstvertrag zu definieren. Im Dienstvertrag ist angegeben, welche Vorgänge vom Dienst unterstützt werden. Ein Vorgang ähnelt einer Webdienstmethode. Sie erstellen Dienstverträge, indem Sie eine C#- oder Visual Basic-Schnittstelle definieren. Eine Schnittstelle weist die folgenden Merkmale auf:
- Jede Methode in der Schnittstelle entspricht einem bestimmten Dienstvorgang.
- Für jede Schnittstelle müssen Sie das Attribut ServiceContractAttribute anwenden.
- Für jeden Vorgang und jede Methode müssen Sie das Attribut OperationContractAttribute anwenden.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen Sie ein Projekt für eine WCF-Dienstbibliothek.
- Definieren Sie eine Dienstvertragsschnittstelle.
Erstellen eines WCF-Dienstbibliotheksprojekts und Definieren einer Dienstvertragsschnittstelle
Öffnen Sie Visual Studio als Administrator. Wählen Sie im Startmenü das Visual Studio-Programm und dann im Kontextmenü Mehr>Als Administrator ausführen aus.
Erstellen Sie ein Projekt für eine WCF-Dienstbibliothek.
Klicken Sie im Menü Datei auf Neu>Projekt.
Erweitern Sie im Dialogfeld Neues Projekt auf der linken Seite den Eintrag Visual C# oder Visual Basic, und wählen Sie dann die Kategorie WCF aus. Visual Studio zeigt im mittleren Teil des Fensters eine Liste der Projektvorlagen an. Wählen Sie WCF-Dienstbibliothek aus.
Hinweis
Wenn die Kategorie für WCF Projektvorlagen nicht angezeigt wird, müssen Sie möglicherweise die Visual Studio-Komponente Windows Communication Foundation installieren. Wählen Sie im Dialogfeld Neues Projekt im linken Bereich den Link Visual Studio-Installer öffnen aus. Wählen Sie die Registerkarte Einzelne Komponenten aus. Suchen Sie dann in der Kategorie Entwicklungsaktivitäten nach Windows Communication Foundation, und wählen Sie diesen Eintrag aus. Wählen Sie Ändern aus, um mit der Installation der Komponente zu beginnen.
Geben Sie im unteren Abschnitt des Fensters GettingStartedLib als Namen und GettingStarted als Lösungsnamen ein.
Klicken Sie auf OK.
Visual Studio erstellt das Projekt, das drei Dateien umfasst: IService1.cs (oder IService1.vb bei einem Visual Basic-Projekt), Service1.cs (oder Service1.vb bei einem Visual Basic-Projekt) und App.config. Diese Dateien werden von Visual Studio wie folgt definiert:
- Die Datei IService1 enthält die Standarddefinition des Dienstvertrags.
- Die Datei Service1 enthält die Standardimplementierung des Dienstvertrags.
- Die Datei App.config enthält die Konfigurationsinformationen, die erforderlich sind, um den Standarddienst mit dem Tool für den Visual Studio-WCF-Diensthost zu laden. Weitere Informationen zum Tool für den WCF-Diensthost finden Sie unter WCF-Diensthost (WcfSvcHost.exe).
Hinweis
Wenn Sie Visual Studio mit den Einstellungen für die Visual Basic-Entwicklerumgebung installiert haben, ist die Projektmappe möglicherweise ausgeblendet. In diesem Fall wählen Sie im Menü Extras den Eintrag Optionen und dann im Fenster Optionen den Eintrag Projekte und Projektmappen>Allgemein aus. Wählen Sie Projektmappe immer anzeigen aus. Überprüfen Sie außerdem, ob die Einstellung Neue Projekte beim Erstellen speichern ausgewählt ist.
Öffnen Sie die Datei IService1.cs bzw. IService1.vb im Projektmappen-Explorer, und ersetzen Sie den vorhandenen Code durch den folgenden Code:
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
Dieser Vertrag definiert einen Onlinerechner. Beachten Sie, dass die
ICalculator
-Schnittstelle mit dem Attribut ServiceContractAttribute (vereinfacht alsServiceContract
) gekennzeichnet ist. Dieses Attribut definiert einen Namespace, um den Vertragsnamen eindeutig zu machen. Der Code kennzeichnet jeden Berechnungsvorgang mit dem Attribut OperationContractAttribute (vereinfacht alsOperationContract
).
Nächste Schritte
In diesem Tutorial haben Sie Folgendes gelernt:
- Erstellen Sie ein Projekt für eine WCF-Dienstbibliothek.
- Definieren Sie eine Dienstvertragsschnittstelle.
Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie den WCF-Dienstvertrag implementieren.