方法 : クラスを使用して Windows Communication Foundation コントラクトを作成する

推奨される Windows Communication Foundation (WCF) コントラクト作成方法は、インターフェイスを使用することです。 詳細については、サービス コントラクトの定義方法に関するページを参照してください。 ここで説明する代替方法では、クラスを作成してから、ServiceContractAttribute 属性を直接そのクラスに適用し、OperationContractAttribute 属性をコントラクトに含まれるクラス内の各メソッドに適用します。

警告

[ServiceContract][ServiceContractAttribute] は、同じことを行います。 これは、[OperationContract][OperationContractAttribute] でも同様です。 いずれの場合も、前者は後者の短縮形です。

サービス コントラクトの詳細については、「サービス コントラクトの設計」を参照してください。

クラスを使用した Windows Communication Foundation コントラクトの作成

  1. Visual Basic、C#、またはその他の共通言語ランタイム言語を使用して、新しいクラスを作成します。

  2. クラスに ServiceContractAttribute クラスを適用します。

  3. クラスでメソッドを作成します。

  4. WCF のパブリック コントラクトの一部として公開する必要のある各メソッドに OperationContractAttribute クラスを適用します。

次のコード例は、サービス コントラクトを定義するクラスを示しています。

[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

OperationContractAttribute クラスが適用されたメソッドは、既定で要求/応答メッセージ パターンを使用します。 このメッセージ パターンの詳細については、「方法: 要求/応答コントラクトを作成する」を参照してください。 属性のプロパティを設定することにより、他のメッセージ パターンを作成および使用できるようになります。 その他の例については、「方法: 一方向コントラクトを作成する」および「方法: 双方向コントラクトを作成する」を参照してください。

関連項目