Share via


IServiceContractGenerationExtension Schnittstelle

Definition

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

public interface class IServiceContractGenerationExtension
public interface IServiceContractGenerationExtension
type IServiceContractGenerationExtension = interface
Public Interface IServiceContractGenerationExtension

Beispiele

Im folgenden Codebeispiel wird das Hinzufügen einer IServiceContractGenerationExtension zur ContractDescription.Behaviors-Eigenschaft während des Aufrufs zum ImportContract veranschaulicht.

  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 eine Implementierung von GenerateContract veranschaulicht, die dem für einen Dienstvertrag generierten Code Kommentare hinzufügt.

public void GenerateContract(ServiceContractGenerationContext context)
{
  Console.WriteLine("In generate contract.");
  context.ContractType.Comments.AddRange(Formatter.FormatComments(commentText));
}

Im folgenden Codebeispiel werden die generierten Kommentare für den Dienstvertrag gezeigt.

/// 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 IServiceContractGenerationExtension-Schnittstelle für ein Vertragsverhalten (ein System.ServiceModel.Description.IContractBehavior-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 ContractDescription.Behaviors oder ImportContract ein benutzerdefiniertes Vertragsverhalten in die ImportEndpoint-Auflistung ein.

Methoden

GenerateContract(ServiceContractGenerationContext)

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

Gilt für