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.IWsdlImportExtensionOperationDescription.Behaviors 期间,自定义 IWsdlImportExtension.ImportContract 会向 IWsdlImportExtension.ImportEndpoint 集合中插入自定义操作行为。

对每个协定都调用一次 GenerateOperation

适用于