IOperationContractGenerationExtension Interface

Definitie

Definieert de methoden die worden aangeroepen tijdens het genereren van contracten die kunnen worden gebruikt om de gegenereerde code voor een bewerking te wijzigen.

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

Voorbeelden

In het volgende codevoorbeeld ziet u de implementatie van de GenerateOperation methode waarmee een tekenreeks wordt toegevoegd aan de opmerkingensectie van de bewerking met behulp van de System.CodeDom naamruimte.

In het volgende codevoorbeeld ziet u hoe het bewerkingsgedrag IOperationContractGenerationExtension dat wordt geïmplementeerd, tijdens de aanroep in IWsdlImportExtension.ImportContractde OperationDescription.Behaviors verzameling wordt ingevoegd.

  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));
              }
          }
      }
  }

Ten slotte toont het volgende codevoorbeeld de bewerking die is gegenereerd in zowel Visual Basic als 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

Opmerkingen

Implementeer de IOperationContractGenerationExtension interface op een bewerkingsgedrag (een System.ServiceModel.Description.IOperationBehavior type) om u in staat te stellen de code te wijzigen die wordt gegenereerd wanneer een contract of eindpunt in code wordt gecompileerd. Normaal gesproken voegt een aangepast bewerkingsgedrag System.ServiceModel.Description.IWsdlImportExtension toe aan de OperationDescription.Behaviors verzameling tijdens het aanroepen naar IWsdlImportExtension.ImportContract of IWsdlImportExtension.ImportEndpoint.

Methoden

Name Description
GenerateOperation(OperationContractGenerationContext)

Implementeer om het codedocumentobjectmodel te wijzigen vóór het proces voor het genereren van het contract.

Van toepassing op