Bagikan melalui


Mengatur Properti Use dan Style

Sampel UseAndStyle menunjukkan cara menggunakan properti Use dan Style pada XmlSerializerFormatAttribute dan DataContractFormatAttribute. Properti ini memengaruhi cara pesan diformat. Secara default, isi pesan diformat dengan style yang diatur ke Document. Pengaturan ini dapat ditentukan pada tingkat kontrak layanan atau tingkat kontrak operasi.

Catatan

Prosedur penyiapan dan petunjuk pembuatan untuk sampel ini terdapat di akhir topik ini.

Properti style Style menentukan bagaimana metadata WSDL untuk layanan diformat. Nilai yang mungkin adalah Document, dan Rpc. RPC berarti bahwa representasi WSDL dari pesan yang dipertukarkan untuk operasi berisi parameter seolah-olah itu adalah panggilan prosedur jarak jauh. Berikut adalah contohnya.

<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
  <wsdl:part name="n1" type="xsd:double"/>
  <wsdl:part name="n2" type="xsd:double"/>
</wsdl:message>

Mengatur style ke Document berarti bahwa representasi WSDL berisi elemen tunggal yang mewakili dokumen yang ditukar dengan operasi seperti yang ditunjukkan dalam contoh berikut.

<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
  <wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>

Properti Use menentukan format pesan. Nilai yang mungkin adalah Literal dan Encoded; nilai defaultnya adalah Literal. Literal berarti bahwa pesan adalah contoh literal dari skema di WSDL seperti yang ditunjukkan pada contoh Dokumen/Literal berikut.

<Add xmlns="http://Microsoft.ServiceModel.Samples">
  <n1>100</n1>
  <n2>15.99</n2>
</Add>

Dikodekan berarti bahwa skema dalam WSDL adalah spesifikasi abstrak yang dikodekan sesuai dengan aturan yang ditemukan di SOAP 1.1 bagian 5. Berikut ini adalah contoh RPC/Dikodekan.

<q1:Add xmlns:q1="http://Microsoft.ServiceModel.Samples">
  <n1 xsi:type="xsd:double" xmlns="">100</n1>
  <n2 xsi:type="xsd:double" xmlns="">15.99</n2>
</q1:Add>

Profil Dasar WS-I 1.0 melarang penggunaan Encoded dan Anda hanya boleh menggunakannya jika diperlukan oleh layanan warisan. Format pesan Encoded hanya tersedia saat menggunakan XmlSerializer.

Untuk memungkinkan Anda melihat pesan yang dikirim dan diterima, sampel ini didasarkan pada Penelusuran dan Pengelogan Pesan. Konfigurasi layanan dan kode sumber telah dimodifikasi untuk mengaktifkan dan menggunakan pelacakan serta pengelogan pesan. Selain itu, WSHttpBinding telah dikonfigurasi tanpa keamanan, sehingga pesan yang dicatat dapat dilihat dalam format yang tidak terenkripsi. Log jejak yang dihasilkan (System.ServiceModel.e2e dan Message.log) harus dilihat dengan menggunakan Service Trace Viewer Tool (SvcTraceViewer.exe). Jejak dikonfigurasi untuk dibuat di folder C:\LOGS. Buat folder sebelum menjalankan sampel. Untuk melihat konten pesan di alat Penampil Jejak, pilih Pesan di panel kiri dan kanan alat.

Kode berikut menunjukkan kontrak layanan dengan properti Use yang diatur ke OperationFormatUse dan format isi pesan berubah dari default OperationFormatStyle ke Document.

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples"),
XmlSerializerFormat(Style = OperationFormatStyle.Rpc,
                                 Use = OperationFormatUse.Encoded)]
public interface IUseAndStyleCalculator
{
    [OperationContract]
    double Add(double n1, double n2);
    [OperationContract]
    double Subtract(double n1, double n2);
    [OperationContract]
    double Multiply(double n1, double n2);
    [OperationContract]
    double Divide(double n1, double n2);
}

Untuk melihat perbedaan antara pengaturan Use dan Style yang berbeda, ubah di layanan, buat ulang klien, jalankan sampel, dan periksa file c:\logs\message.logs dengan alat Service Trace Viewer. Amati juga dampak pada metadata dengan melihat http://localhost/ServiceModelSamples/service.svc?wsdl. Metadata untuk layanan biasanya dipecah menjadi beberapa halaman. Halaman WSDL utama berisi pengikatan WSDL, tetapi lihat http://localhost/ServiceModelSamples/service.svc?wsdl=wsdl0 untuk mengamati definisi pesan.

Untuk menyiapkan, membangun, dan menjalankan sampel

  1. Pastikan Anda telah melakukan Prosedur Penyiapan Satu Kali untuk Sampel Windows Communication Foundation.

  2. Buat direktori C:\LOGS untuk pengelogan pesan. Berikan izin tulis Layanan Jaringan kepada pengguna untuk direktori ini.

  3. Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti petunjuknya di Membangun Sampel WCF.

  4. Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi pada Menjalankan Sampel WCF.