IOperationContractGenerationExtension Gränssnitt

Definition

Definierar de metoder som anropas under kontraktsgenereringen och som kan användas för att ändra den genererade koden för en åtgärd.

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

Exempel

I följande kodexempel visas implementeringen av GenerateOperation metoden som lägger till en sträng i kommentarsavsnittet i åtgärden med hjälp System.CodeDom av namnområdet.

Följande kodexempel visar hur åtgärdsbeteendet som implementeras infogas IOperationContractGenerationExtension i OperationDescription.Behaviors samlingen under anropet till 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));
              }
          }
      }
  }

Slutligen visar följande kodexempel åtgärden som genereras i både Visual Basic och 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

Kommentarer

IOperationContractGenerationExtension Implementera gränssnittet på ett åtgärdsbeteende (en System.ServiceModel.Description.IOperationBehavior typ) så att du kan ändra koden som genereras när ett kontrakt eller en slutpunkt kompileras till kod. Vanligtvis infogar en anpassad System.ServiceModel.Description.IWsdlImportExtension åtgärd ett anpassat åtgärdsbeteende i OperationDescription.Behaviors samlingen under anropet till IWsdlImportExtension.ImportContract eller IWsdlImportExtension.ImportEndpoint.

Metoder

Name Description
GenerateOperation(OperationContractGenerationContext)

Implementera för att ändra koddokumentets objektmodell före kontraktgenereringsprocessen.

Gäller för