如何:使用类创建 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 类的方法使用请求-答复消息模式。 有关此消息模式的详细信息,请参阅如何:创建请求-回复协定。 您还可以通过设置属性 (Attribute) 的属性 (Property) 来创建和使用其他消息模式。 有关更多示例,请参阅如何:创建单向协定如何:创建双工协定

另请参阅