Condividi tramite


IServiceContractGenerationExtension.GenerateContract Metodo

Definizione

Procedere all'implementazione per modificare l'oggetto CodeDOM (Code Document Object Model) prima del processo di generazione del contratto.

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)

Parametri

context
ServiceContractGenerationContext

Il contesto generato dal codice da utilizzare per modificare il documento di codice prima della generazione.

Esempio

Nell'esempio di codice seguente viene illustrato come aggiungere IServiceContractGenerationExtension alla proprietà ContractDescription.Behaviors durante la chiamata a 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));
              }
          }
      }
  }

Negli esempi di codice seguenti viene illustrata l'implementazione di GenerateContract aggiunge commenti al codice generato per un contratto di servizio.

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

Nell'esempio di codice seguente vengono mostrati i commenti generati relativi al contratto di servizio.

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

Commenti

Utilizzare System.ServiceModel.Description.ServiceContractGenerationContext per modificare il contratto, le operazioni o System.ServiceModel.Description.ServiceContractGenerator prima della generazione del codice.

Si applica a