作法:建立要求-回覆合約

要求-回覆合約會指定一個方法以傳回回覆。 回覆必須在此合約條件下進行傳送並與要求相互關聯。 即便該方法未傳回任何回覆 (在 C# 為 void,在 Visual Basic 為 Sub),基礎結構還是會建立空訊息並傳送給呼叫者。 若要避免傳送空的回覆訊息,請使用單向作業合約。

若要建立要求-回覆合約

  1. 使用您選擇的程式語言建立一個介面。

  2. ServiceContractAttribute 屬性套用至該介面。

  3. OperationContractAttribute 屬性套用至用戶端可能叫用的每個方法。

  4. 選擇性。 將 IsOneWay 屬性設定為 true 值,以免傳送空的回覆訊息。 預設情況下,所有各項作業都是要求-回覆合約。

範例

下列範例針對可提供 AddSubtract 方法的計算機服務定義合約。 Multiply 方法不是合約的一部分,因為它未加上 OperationContractAttribute 類別標示,因此無法由用戶端來存取。

using System.ServiceModel;

[ServiceContract]
public interface ICalculator
{
    [OperationContract]
    // It would be equivalent to write explicitly:
    // [OperationContract(IsOneWay=false)]
    int Add(int a, int b);

    [OperationContract]
    int Subtract(int a, int b);

    int Multiply(int a, int b)
}
  • 如何指定作業合約的詳細資訊,請參閱 OperationContractAttribute 類別和 IsOneWay 屬性。

  • 藉由套用 ServiceContractAttributeOperationContractAttribute 屬性,部署服務時就會自動產生服務合約定義,亦即 Web 服務描述語言 (WSDL) 文件。 只要將 ?wsdl 附加至服務的 HTTP 基底位址,便能夠下載這份文件。 例如,http://microsoft/CalculatorService?wsdl

另請參閱