Udostępnij za pośrednictwem


IServiceContractGenerationExtension.GenerateContract Metoda

Definicja

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

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)

Parametry

context
ServiceContractGenerationContext

Kod wygenerowany kontekst używany do modyfikowania dokumentu kodu przed generowaniem.

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

Użyj elementu System.ServiceModel.Description.ServiceContractGenerationContext , aby zmodyfikować kontrakt, operacje lub System.ServiceModel.Description.ServiceContractGenerator poprzednią generację kodu.

Dotyczy