Compartir a través de


IOperationContractGenerationExtension.GenerateOperation Método

Definición

Implemente para modificar el Code Document Object Model antes del proceso de generación de contrato.

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)

Parámetros

context
OperationContractGenerationContext

El contexto activo que contiene los tipos System.CodeDom necesarios para modificar la operación generada.

Ejemplos

El siguiente ejemplo de código muestra la implementación del método GenerateOperation que agrega una cadena a la sección de comentarios de la operación utilizando el espacio de nombres System.CodeDom.

El siguiente ejemplo de código muestra cómo el comportamiento de la operación que implementa IOperationContractGenerationExtension se inserta en la colección OperationDescription.Behaviors durante la llamada a 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));
              }
          }
      }
  }

Por último, el siguiente ejemplo de código muestra la operación generada tanto en Visual Basic como en 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

Comentarios

Normalmente, una extensión System.ServiceModel.Description.IWsdlImportExtension personalizada inserta un comportamiento de operación personalizado en la colección OperationDescription.Behaviors durante la llamada a IWsdlImportExtension.ImportContract o IWsdlImportExtension.ImportEndpoint.

Se llama al método GenerateOperation una vez para cada contrato.

Se aplica a