Freigeben über


IServiceContractGenerationExtension.GenerateContract Methode

Definition

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

public:
 void GenerateContract(System::ServiceModel::Description::ServiceContractGenerationContext ^ context);
public void GenerateContract (System.ServiceModel.Description.ServiceContractGenerationContext context);
abstract member GenerateContract : System.ServiceModel.Description.ServiceContractGenerationContext -> unit
Public Sub GenerateContract (context As ServiceContractGenerationContext)

Parameter

context
ServiceContractGenerationContext

Der codegenerierte Kontext, der zum Ändern des Codedokuments vor der Generierung verwendet werden soll.

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

Verwenden Sie System.ServiceModel.Description.ServiceContractGenerationContext, um den Vertrag, Vorgänge oder System.ServiceModel.Description.ServiceContractGenerator vor der Codegenerierung zu ändern.

Gilt für: