IOperationContractGenerationExtension.GenerateOperation Método

Definición

Implemente para modificar el modelo de objetos de documento de código antes del proceso de generación de contratos.

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

Contexto de trabajo que contiene los System.CodeDom tipos necesarios para modificar la operación generada.

Ejemplos

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

En el ejemplo de código siguiente se muestra cómo se inserta el comportamiento de la operación que implementa IOperationContractGenerationExtension en la OperationDescription.Behaviors colección 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, en el ejemplo de código siguiente se muestra la operación generada en Visual Basic y 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, un personalizado System.ServiceModel.Description.IWsdlImportExtension inserta un comportamiento de operación personalizada en la OperationDescription.Behaviors colección durante la llamada a IWsdlImportExtension.ImportContract o IWsdlImportExtension.ImportEndpoint.

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

Se aplica a