Bagikan melalui


IServiceContractGenerationExtension Antarmuka

Definisi

Menentukan metode yang disebut selama pembuatan kontrak yang dapat digunakan untuk memodifikasi kode yang dihasilkan untuk kontrak layanan.

public interface class IServiceContractGenerationExtension
public interface IServiceContractGenerationExtension
type IServiceContractGenerationExtension = interface
Public Interface IServiceContractGenerationExtension

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

Terapkan IServiceContractGenerationExtension antarmuka pada perilaku kontrak ( System.ServiceModel.Description.IContractBehavior jenis) untuk memungkinkan Anda memodifikasi kode yang dihasilkan saat kontrak atau titik akhir dikompilasi ke dalam kode.

Biasanya, kustom System.ServiceModel.Description.IWsdlImportExtension menyisipkan perilaku kontrak kustom ke ContractDescription.Behaviors dalam koleksi selama panggilan ke ImportContract atau ImportEndpoint.

Metode

Nama Deskripsi
GenerateContract(ServiceContractGenerationContext)

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

Berlaku untuk