Partager via


IOperationContractGenerationExtension Interface

Définition

Définit les méthodes appelées au cours d'une génération de contrat qui permet de modifier le code généré pour une opération.

public interface class IOperationContractGenerationExtension
public interface IOperationContractGenerationExtension
type IOperationContractGenerationExtension = interface
Public Interface IOperationContractGenerationExtension

Exemples

L'exemple de code suivant montre l'implémentation de la méthode GenerateOperation qui ajoute une chaîne à la section des commentaires de l'opération à l'aide de l'espace de noms System.CodeDom.

L'exemple de code suivant montre comment le comportement d'opération qui implémente IOperationContractGenerationExtension est inséré dans la collection OperationDescription.Behaviors au cours de l'appel à IWsdlImportExtension.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));
              }
          }
      }
  }

Enfin, l'exemple de code suivant montre l'opération générée à la fois dans Visual Basic et C#.

/// 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 IOperationContractGenerationExtension sur un comportement d'opération (type System.ServiceModel.Description.IOperationBehavior) 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 d’opération personnalisé dans la collection OperationDescription.Behaviors au cours de l’appel à IWsdlImportExtension.ImportContract ou IWsdlImportExtension.ImportEndpoint.

Méthodes

GenerateOperation(OperationContractGenerationContext)

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

S’applique à