Udostępnij za pośrednictwem


IOperationContractGenerationExtension.GenerateOperation Metoda

Definicja

Zaimplementuj, aby zmodyfikować model obiektu dokumentu kodu przed procesem generowania kontraktu.

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)

Parametry

context
OperationContractGenerationContext

Kontekst roboczy zawierający System.CodeDom typy niezbędne do zmodyfikowania wygenerowanej operacji.

Przykłady

Poniższy przykład kodu przedstawia implementację GenerateOperation metody, która dodaje ciąg do sekcji komentarzy operacji przy użyciu System.CodeDom przestrzeni nazw.

Poniższy przykład kodu pokazuje, jak zachowanie operacji implementujące IOperationContractGenerationExtension jest wstawiane do OperationDescription.Behaviors kolekcji podczas wywołania metody 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));
              }
          }
      }
  }

Na koniec poniższy przykład kodu przedstawia operację wygenerowaną w Visual Basic i 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

Uwagi

Zazwyczaj niestandardowe System.ServiceModel.Description.IWsdlImportExtension wstawia zachowanie operacji niestandardowej OperationDescription.Behaviors do kolekcji podczas wywołania metody IWsdlImportExtension.ImportContract lub IWsdlImportExtension.ImportEndpoint.

Metoda jest wywoływana GenerateOperation raz dla każdego kontraktu.

Dotyczy