IServiceContractGenerationExtension.GenerateContract Metod

Definition

Implementera för att ändra koddokumentets objektmodell före kontraktgenereringsprocessen.

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)

Parametrar

context
ServiceContractGenerationContext

Den kodgenererade kontext som ska användas för att ändra koddokumentet före generering.

Exempel

Följande kodexempel visar hur du lägger till en IServiceContractGenerationExtension i ContractDescription.Behaviors egenskapen under anropet till 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));
              }
          }
      }
  }

Följande kodexempel visar implementeringen av GenerateContract som lägger till kommentarer till koden som genereras för ett tjänstkontrakt.

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

I följande kodexempel visas de genererade kommentarerna i tjänstkontraktet.

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

Kommentarer

System.ServiceModel.Description.ServiceContractGenerationContext Använd för att ändra kontraktet, åtgärderna eller System.ServiceModel.Description.ServiceContractGenerator före kodgenereringen.

Gäller för