Udostępnij za pośrednictwem


IServiceContractGenerationExtension Interfejs

Definicja

Definiuje metody wywoływane podczas generowania kontraktu, które mogą służyć do modyfikowania wygenerowanego kodu dla kontraktu usługi.

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

Przykłady

Poniższy przykład kodu pokazuje, jak dodać element IServiceContractGenerationExtension do ContractDescription.Behaviors właściwości podczas wywołania do ImportContractelementu .

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

W poniższych przykładach kodu pokazano implementację GenerateContract , która dodaje komentarze do kodu wygenerowanego dla kontraktu usługi.

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

Poniższy przykład kodu przedstawia wygenerowane komentarze dotyczące kontraktu usługi.

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

Uwagi

Zaimplementuj IServiceContractGenerationExtension interfejs w zachowaniu kontraktu ( System.ServiceModel.Description.IContractBehavior typ), aby umożliwić modyfikowanie kodu wygenerowanego podczas kompilowania kontraktu lub punktu końcowego w kodzie.

Zazwyczaj niestandardowe System.ServiceModel.Description.IWsdlImportExtension zachowanie kontraktu niestandardowego wstawia do ContractDescription.Behaviors kolekcji podczas wywołania metody ImportContract lub ImportEndpoint.

Metody

GenerateContract(ServiceContractGenerationContext)

Zaimplementuj, aby zmodyfikować model obiektu dokumentu kodu przed procesem generowania kontraktu.

Dotyczy