IOperationContractGenerationExtension.GenerateOperation Metodo

Definizione

Procedere all'implementazione per modificare l'oggetto CodeDOM (Code Document Object Model) prima del processo di generazione del contratto.

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)

Parametri

context
OperationContractGenerationContext

Il contesto operativo che contiene i tipi System.CodeDom necessari per modificare l'operazione generata.

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione del metodo GenerateOperation che aggiunge una stringa alla sezione dei commenti dell'operazione utilizzando lo spazio dei nomi System.CodeDom.

L'esempio di codice seguente illustra come il comportamento dell'operazione che implementa IOperationContractGenerationExtension viene inserito nella raccolta di OperationDescription.Behaviors durante la chiamata 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));
              }
          }
      }
  }

Nell'esempio di codice seguente viene infine illustrata l'operazione generata sia in Visual Basic che in 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

Commenti

In genere, un'interfaccia System.ServiceModel.Description.IWsdlImportExtension personalizzata inserisce un comportamento dell'operazione personalizzato nella raccolta di proprietà OperationDescription.Behaviors durante la chiamata a IWsdlImportExtension.ImportContract o a IWsdlImportExtension.ImportEndpoint.

Il metodo GenerateOperation viene chiamato una volta per ogni contratto.

Si applica a