Freigeben über


IOperationContractGenerationExtension Schnittstelle

Definition

Definiert die während der Vertragsgenerierung aufgerufenen Methoden, die zum Ändern des generierten Codes für einen Vorgang verwendet werden können.

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

Beispiele

Im folgenden Codebeispiel wird eine Implementierung der GenerateOperation-Methode veranschaulicht, mit der dem Kommentarabschnitt des Vorgangs eine Zeichenfolge mithilfe des System.CodeDom-Namespaces hinzugefügt wird.

Im folgenden Codebeispiel wird veranschaulicht, wie ein Vorgangsverhalten, das IOperationContractGenerationExtension implementiert, während des Aufrufs von OperationDescription.Behaviors in die IWsdlImportExtension.ImportContract-Auflistung eingefügt wird.

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

Im folgenden Codebeispiel wird schließlich der in sowohl Visual Basic als auch C# generierte Vorgang veranschaulicht.

/// 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

Hinweise

Implementiert die IOperationContractGenerationExtension-Schnittstelle für ein Vorgangsverhalten (ein System.ServiceModel.Description.IOperationBehavior-Typ), um den beim Kompilieren eines Vertrags oder Endpunkts generierten Code zu ändern. In der Regel fügt eine benutzerdefinierte System.ServiceModel.Description.IWsdlImportExtension während des Aufrufs von OperationDescription.Behaviors oder IWsdlImportExtension.ImportContract ein benutzerdefiniertes Vorgangsverhalten in die IWsdlImportExtension.ImportEndpoint-Auflistung ein.

Methoden

GenerateOperation(OperationContractGenerationContext)

Implementieren Sie dies, um das Code Document Object Model vor dem Vertragsgenerierungsprozess zu ändern.

Gilt für: