IServiceContractGenerationExtension.GenerateContract Metode

Definisi

Terapkan untuk mengubah model objek dokumen kode sebelum proses pembuatan kontrak.

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)

Parameter

context
ServiceContractGenerationContext

Konteks kode yang dihasilkan untuk digunakan untuk mengubah dokumen kode sebelum pembuatan.

Contoh

Contoh kode berikut menunjukkan cara menambahkan IServiceContractGenerationExtension ke ContractDescription.Behaviors properti selama panggilan ke 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));
              }
          }
      }
  }

Contoh kode berikut menunjukkan implementasi GenerateContract yang menambahkan komentar ke kode yang dihasilkan untuk kontrak layanan.

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

Contoh kode berikut menunjukkan komentar yang dihasilkan pada kontrak layanan.

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

Keterangan

System.ServiceModel.Description.ServiceContractGenerationContext Gunakan untuk mengubah kontrak, operasi, atau System.ServiceModel.Description.ServiceContractGenerator sebelum pembuatan kode.

Berlaku untuk