IOperationContractGenerationExtension Schnittstelle

Definition

Definiert die Methoden, die während der Vertragsgenerierung aufgerufen werden, 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

Das folgende Codebeispiel zeigt die Implementierung der GenerateOperation Methode, die dem Kommentarabschnitt des Vorgangs mithilfe System.CodeDom des Namespaces eine Zeichenfolge hinzufügt.

Das folgende Codebeispiel zeigt, wie das vorgangsverhalten, das implementiert wird, während des Aufrufs IOperationContractGenerationExtensionOperationDescription.Behaviorsin 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));
              }
          }
      }
  }

Schließlich zeigt das folgende Codebeispiel den Vorgang, der sowohl in Visual Basic als auch in C# generiert wurde.

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

Implementieren Sie die IOperationContractGenerationExtension Schnittstelle für ein Vorgangsverhalten (einen System.ServiceModel.Description.IOperationBehavior Typ), damit Sie den code ändern können, der generiert wird, wenn ein Vertrag oder Endpunkt in Code kompiliert wird. In der System.ServiceModel.Description.IWsdlImportExtension Regel fügt ein benutzerdefiniertes OperationDescription.Behaviors Vorgangsverhalten während des Aufrufs IWsdlImportExtension.ImportContract von oder IWsdlImportExtension.ImportEndpoint.

Methoden

Name Beschreibung
GenerateOperation(OperationContractGenerationContext)

Implementieren, um das Codedokumentobjektmodell vor dem Prozess der Vertragsgenerierung zu ändern.

Gilt für: