IServiceContractGenerationExtension Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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. |