Dela via


Självstudie: Definiera ett Windows Communication Foundation-tjänstkontrakt

I den här självstudien beskrivs den första av fem uppgifter som krävs för att skapa ett grundläggande WCF-program (Windows Communication Foundation). En översikt över självstudierna finns i Självstudie: Kom igång med Windows Communication Foundation-program.

När du skapar en WCF-tjänst är din första uppgift att definiera ett tjänstkontrakt. Tjänstkontraktet anger vilka åtgärder tjänsten stöder. En åtgärd kan betraktas som en webbtjänstmetod. Du skapar tjänstkontrakt genom att definiera ett C#- eller Visual Basic-gränssnitt. Ett gränssnitt har följande egenskaper:

I den här självstudien lär du dig att:

  • Skapa ett WCF-tjänstbiblioteksprojekt .
  • Definiera ett tjänstkontraktsgränssnitt.

Skapa ett WCF-tjänstbiblioteksprojekt och definiera ett tjänstkontraktsgränssnitt

  1. Öppna Visual Studio som administratör. Om du vill göra det väljer du Visual Studio-programmet på Start-menyn och väljer sedan Mer>kör som administratör på snabbmenyn.

  2. Skapa ett WCF-tjänstbiblioteksprojekt .

    1. På menyn Arkiv väljer du Nytt>projekt.

    2. I dialogrutan Nytt projekt till vänster expanderar du Visual C# eller Visual Basic och väljer sedan kategorin WCF. Visual Studio visar en lista över projektmallar i mitten av fönstret. Välj WCF-tjänstbibliotek.

      Kommentar

      Om du inte ser kategorin WCF-projektmall kan du behöva installera Windows Communication Foundation-komponenten i Visual Studio. I dialogrutan Nytt projekt väljer du länken Öppna Visual Studio Installer till vänster. Välj fliken Enskilda komponenter och leta sedan upp och välj Windows Communication Foundation under kategorin Utvecklingsaktiviteter . Välj Ändra för att börja installera komponenten.

    3. I det nedre avsnittet i fönstret anger du GettingStartedLib som Namn och GettingStarted som lösningsnamn.

    4. Välj OK.

      Visual Studio skapar projektet med tre filer: IService1.cs (eller IService1.vb för ett Visual Basic-projekt), Service1.cs (eller Service1.vb för ett Visual Basic-projekt) och App.config. Visual Studio definierar dessa filer på följande sätt:

      • IService1-filen innehåller standarddefinitionen för tjänstkontraktet.
      • Service1-filen innehåller standardimplementeringen av tjänstkontraktet.
      • Filen App.config innehåller den konfigurationsinformation som behövs för att läsa in standardtjänsten med Visual Studio WCF-tjänstens värdverktyg. Mer information om WCF-tjänstens värdverktyg finns i WCF-tjänstvärd (WcfSvcHost.exe).

      Kommentar

      Om du har installerat Visual Studio med Miljöinställningar för Visual Basic-utvecklare kan lösningen vara dold. Om så är fallet väljer du Alternativ på menyn Verktyg och väljer sedan Projekt och Lösningar>Allmänt i fönstret Alternativ. Välj Visa alltid lösning. Kontrollera också att Spara nya projekt när du skapar är markerat.

  3. Öppna filen IService1.cs eller IService1.vb från Solution Explorer och ersätt koden med följande kod:

    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
    

    Det här kontraktet definierar en onlinekalkylator. Observera att ICalculator gränssnittet har markerats med ServiceContractAttribute attributet (förenklat som ServiceContract). Det här attributet definierar ett namnområde för att skilja kontraktnamnet åt. Koden markerar varje kalkylatoråtgärd med OperationContractAttribute attributet (förenklat som OperationContract).

Nästa steg

I den här självstudiekursen lärde du dig att:

  • Skapa ett WCF-tjänstbiblioteksprojekt.
  • Definiera ett tjänstkontraktsgränssnitt.

Gå vidare till nästa självstudie för att lära dig hur du implementerar WCF-tjänstkontraktet.