Dela via


Anvisningar: Skapa ett Windows Communication Foundation-kontrakt med en klass

Det bästa sättet att skapa ett WCF-kontrakt (Windows Communication Foundation) är att använda ett gränssnitt. Mer information finns i Så här definierar du ett tjänstkontrakt. Ett alternativ, som beskrivs här, är att skapa en klass och sedan tillämpa ServiceContractAttribute attributet på klassen direkt och attributet på var och OperationContractAttribute en av metoderna i klassen som ingår i kontraktet.

Varning

[ServiceContract] och [ServiceContractAttribute] gör samma sak. Samma sak gäller för [OperationContract] och [OperationContractAttribute]. I varje fall är den förra förkortningen för den senare.

Mer information om tjänstkontrakt finns i Designa tjänstkontrakt.

Skapa ett Windows Communication Foundation-kontrakt med en klass

  1. Skapa en ny klass med Visual Basic, C# eller något annat vanligt språkkörningsspråk.

  2. Tillämpa klassen på ServiceContractAttribute klassen.

  3. Skapa metoder i klassen.

  4. Tillämpa klassen på OperationContractAttribute varje metod som måste exponeras som en del av det offentliga WCF-kontraktet.

Exempel

I följande kodexempel visas en klass som definierar ett tjänstkontrakt.

[ServiceContract]
public class CalculatorService
{
  [OperationContract]
  public double Add(double n1, double n2)
  {
     return n1 + n2;
  }

  [OperationContract]
  public double Subtract(double n1, double n2)
  {
     return n1 - n2;
  }

  [OperationContract]
  public double Multiply(double n1, double n2)
  {
     return n1 * n2;
  }

  [OperationContract]
  public double Divide(double n1, double n2)
  {
     return n1 / n2;
  }
}

<ServiceContract()> _
Public Class CalculatorService
    <OperationContract()> _
    Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 + n2
    End Function

    <OperationContract()> _
    Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 - n2
    End Function

    <OperationContract()> _
    Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 * n2
    End Function

    <OperationContract()> _
    Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        Return n1 / n2
    End Function
End Class

De metoder som har klassen OperationContractAttribute tillämpad använder ett mönster för begäran-svar-meddelande som standard. Mer information om det här meddelandemönstret finns i How to: Create a Request-Reply Contract (Skapa ett begärandesvarskontrakt). Du kan också skapa och använda andra meddelandemönster genom att ange egenskaper för attributet. Fler exempel finns i How to: Create a One-Way Contract and How to: Create a Duplex Contract (Skapa ett dubbelsidigt kontrakt).

Se även