Udostępnij za pośrednictwem


Instrukcje: Tworzenie kontraktu programu Windows Communication Foundation za pomocą klasy

Preferowanym sposobem tworzenia kontraktu programu Windows Communication Foundation (WCF) jest użycie interfejsu. Aby uzyskać więcej informacji, zobacz How to: Define a Service Contract (Instrukcje: definiowanie kontraktu usługi). Alternatywą, opisaną tutaj, jest utworzenie klasy, a następnie zastosowanie ServiceContractAttribute atrybutu do klasy bezpośrednio i OperationContractAttribute atrybutu do każdej z metod w klasie, które są częścią kontraktu.

Ostrzeżenie

[ServiceContract] i [ServiceContractAttribute] zrób to samo. To samo dotyczy [OperationContract] i [OperationContractAttribute]. W każdym przypadku, pierwszy jest skrótem dla tego drugiego.

Aby uzyskać więcej informacji na temat kontraktów usług, zobacz Projektowanie kontraktów usług.

Tworzenie kontraktu programu Windows Communication Foundation z klasą

  1. Utwórz nową klasę przy użyciu języka Visual Basic, C# lub innego języka uruchomieniowego języka wspólnego.

  2. Zastosuj klasę ServiceContractAttribute do klasy.

  3. Utwórz metody w klasie .

  4. Zastosuj klasę OperationContractAttribute do każdej metody, która musi być uwidoczniona w ramach publicznego kontraktu WCF.

Przykład

Poniższy przykład kodu przedstawia klasę, która definiuje kontrakt usługi.

[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

Metody, które mają zastosowaną OperationContractAttribute klasę, domyślnie używają wzorca komunikatu żądania-odpowiedzi. Aby uzyskać więcej informacji na temat tego wzorca komunikatu, zobacz How to: Create a Request-Reply Contract (Instrukcje: tworzenie kontraktu odpowiedzi na żądanie). Można również tworzyć i używać innych wzorców komunikatów, ustawiając właściwości atrybutu. Aby uzyskać więcej przykładów, zobacz How to: Create a One-Way Contract (Instrukcje: tworzenie kontraktu jednokierunkowego) i How to: Create a Duplex Contract (Jak utworzyć kontrakt dwukierunkowy).

Zobacz też