Aracılığıyla paylaş


IOperationContractGenerationExtension Arabirim

Tanım

Bir işlem için oluşturulan kodu değiştirmek için kullanılabilecek sözleşme oluşturma sırasında çağrılan yöntemleri tanımlar.

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

Örnekler

Aşağıdaki kod örneği, ad alanını kullanarak işlemin açıklamalar bölümüne bir dize ekleyen yönteminin System.CodeDom uygulamasını GenerateOperation gösterir.

Aşağıdaki kod örneği, uygulayan IOperationContractGenerationExtension işlem davranışının çağrısı IWsdlImportExtension.ImportContractsırasında koleksiyona OperationDescription.Behaviors nasıl eklendiğini gösterir.

  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));
              }
          }
      }
  }

Son olarak, aşağıdaki kod örneği hem Visual Basic hem de C# dilinde oluşturulan işlemi gösterir.

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

Açıklamalar

IOperationContractGenerationExtension Bir sözleşme veya uç nokta koda derlendiğinde oluşturulan kodu değiştirmenizi sağlamak için bir işlem davranışında (System.ServiceModel.Description.IOperationBehaviortür) arabirimini uygulayın. Genellikle, özel System.ServiceModel.Description.IWsdlImportExtension bir özel işlem davranışını OperationDescription.Behaviors veya IWsdlImportExtension.ImportEndpointçağrısı sırasında koleksiyona IWsdlImportExtension.ImportContract ekler.

Yöntemler

GenerateOperation(OperationContractGenerationContext)

Sözleşme oluşturma işleminden önce kod belgesi nesne modelini değiştirmek için uygulayın.

Şunlara uygulanır