IOperationContractGenerationExtension.GenerateOperation 方法

定義

您可以實作以在合約產生處理之前修改程式碼文件物件模型。

public:
 void GenerateOperation(System::ServiceModel::Description::OperationContractGenerationContext ^ context);
public void GenerateOperation (System.ServiceModel.Description.OperationContractGenerationContext context);
abstract member GenerateOperation : System.ServiceModel.Description.OperationContractGenerationContext -> unit
Public Sub GenerateOperation (context As OperationContractGenerationContext)

參數

context
OperationContractGenerationContext

包含修改產生的作業所需要的 System.CodeDom 型別的工作內容。

範例

下列程式碼範例會示範 GenerateOperation 方法的實作,使用 System.CodeDom 命名空間將字串新增至作業的註解區段。

下列程式碼範例會示範如何在呼叫 IOperationContractGenerationExtension 期間,將實作 OperationDescription.Behaviors 的作業行為插入 IWsdlImportExtension.ImportContract 集合中。

  public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context)
  {
Console.Write("ImportContract");
      // Contract Documentation
      if (context.WsdlPortType.Documentation != null)
      {
  context.Contract.Behaviors.Add(new WsdlDocumentationImporter(context.WsdlPortType.Documentation));
      }
      // Operation Documentation
      foreach (Operation operation in context.WsdlPortType.Operations)
      {
          if (operation.Documentation != null)
          {
              OperationDescription operationDescription = context.Contract.Operations.Find(operation.Name);
              if (operationDescription != null)
              {
      operationDescription.Behaviors.Add(new WsdlDocumentationImporter(operation.Documentation));
              }
          }
      }
  }

最後,下列程式碼範例會示範 Visual Basic 和 C# 中產生的作業。

/// From WSDL Documentation:
///
/// <summary>The string for the Name data member.</summary>
///
[System.Runtime.Serialization.DataMemberAttribute()]
public string Name
{
    get
    {
        return this.NameField;
    }
    set
    {
        this.NameField = value;
    }
}

'''From WSDL Documentation:
'''
'''<summary>The string for the Name data member.</summary> 
'''
<System.Runtime.Serialization.DataMemberAttribute()>  _
Public Property Name() As String
    Get
        Return Me.NameField
    End Get
    Set
        Me.NameField = value
    End Set
End Property

備註

一般而言,自訂 System.ServiceModel.Description.IWsdlImportExtension 會在呼叫 OperationDescription.BehaviorsIWsdlImportExtension.ImportContract 期間,將自訂作業行為插入 IWsdlImportExtension.ImportEndpoint 集合中。

GenerateOperation 方法會針對每個合約呼叫一次。

適用於