IOperationContractGenerationExtension Interfejs

Definicja

Definiuje metody wywoływane podczas generowania kontraktu, które mogą służyć do modyfikowania wygenerowanego kodu dla operacji.

public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension

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

Zaimplementuj IOperationContractGenerationExtension interfejs dla zachowania operacji ( System.ServiceModel.Description.IOperationBehavior typu), aby umożliwić modyfikowanie kodu wygenerowanego podczas kompilowania kontraktu lub punktu końcowego w kodzie. Zazwyczaj niestandardowe System.ServiceModel.Description.IWsdlImportExtension wstawia zachowanie operacji niestandardowej OperationDescription.Behaviors do kolekcji podczas wywołania metody IWsdlImportExtension.ImportContract lub IWsdlImportExtension.ImportEndpoint.

Metody

GenerateOperation(OperationContractGenerationContext)

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

Dotyczy