IServiceContractGenerationExtension.GenerateContract Methode

Definitie

Implementeer om het codedocumentobjectmodel te wijzigen vóór het proces voor het genereren van het contract.

public:
 void GenerateContract(System::ServiceModel::Description::ServiceContractGenerationContext ^ context);
public void GenerateContract(System.ServiceModel.Description.ServiceContractGenerationContext context);
abstract member GenerateContract : System.ServiceModel.Description.ServiceContractGenerationContext -> unit
Public Sub GenerateContract (context As ServiceContractGenerationContext)

Parameters

context
ServiceContractGenerationContext

De code gegenereerde context die moet worden gebruikt om het codedocument te wijzigen voordat het wordt gegenereerd.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u tijdens de aanroep ImportContracteen IServiceContractGenerationExtension aan de ContractDescription.Behaviors eigenschap toevoegt.

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

In de volgende codevoorbeelden ziet u de implementatie van GenerateContract die opmerkingen toevoegen aan de code die is gegenereerd voor een servicecontract.

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

In het volgende codevoorbeeld ziet u de gegenereerde opmerkingen over het servicecontract.

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

Opmerkingen

Gebruik de System.ServiceModel.Description.ServiceContractGenerationContext opdracht om het contract, de bewerkingen of de System.ServiceModel.Description.ServiceContractGenerator code te wijzigen voordat u code gaat genereren.

Van toepassing op