IServiceContractGenerationExtension Interfejs

Definicja

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

C#
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 .

C#
  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.

C#
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.

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

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

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1