Partager via


IServiceContractGenerationExtension Interface

Définition

Définit les méthodes appelées au cours de la génération de contrat qui permettent de modifier le code généré pour un contrat de service.

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

Exemples

L'exemple de code suivant illustre l'ajout d'une interface IServiceContractGenerationExtension à la propriété ContractDescription.Behaviors au cours de l'appel à 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));
              }
          }
      }
  }

Les exemples de code suivants montrent l'implémentation de GenerateContract, qui ajoute des commentaires au code généré pour un contrat de service.

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

L'exemple de code suivant montre les commentaires générés sur le contrat de service.

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

Remarques

Implémentez l'interface IServiceContractGenerationExtension sur un comportement de contrat (de type System.ServiceModel.Description.IContractBehavior) pour vous permettre de modifier le code généré lors de la compilation d'un contrat ou d'un point de terminaison dans le code.

En général, une System.ServiceModel.Description.IWsdlImportExtension personnalisée insère un comportement de contrat personnalisé dans la collection ContractDescription.Behaviors au cours de l'appel à ImportContract ou ImportEndpoint.

Méthodes

GenerateContract(ServiceContractGenerationContext)

Effectuez une implémentation pour modifier le Code DOM (Code Document Object Model) avant le processus de génération de contrat.

S’applique à