Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel WebContentTypeMapper menunjukkan cara memetakan tipe isi baru ke format isi pesan Windows Communication Foundation (WCF).
Elemen WebHttpEndpoint ini mencolokkan encoder pesan Web, yang memungkinkan WCF menerima pesan biner JSON, XML, atau mentah di titik akhir yang sama. Encoder menentukan format isi pesan dengan melihat jenis konten HTTP permintaan. Sampel ini memperkenalkan WebContentTypeMapper kelas , yang memungkinkan pengguna untuk mengontrol pemetaan antara jenis konten dan format isi.
WCF menyediakan serangkaian pemetaan default untuk jenis konten. Misalnya, application/json diubah menjadi JSON dan text/xml diubah menjadi XML. Tipe konten apa pun yang tidak dipetakan ke JSON atau XML dipetakan ke format biner mentah.
Dalam beberapa skenario (misalnya, API gaya push), pengembang layanan tidak mengontrol jenis konten yang dikembalikan oleh klien. Misalnya, klien mungkin mengembalikan JSON sebagai text/javascript alih-alih application/json. Dalam hal ini, pengembang layanan harus menyediakan jenis yang berasal dari WebContentTypeMapper untuk menangani jenis konten yang diberikan dengan benar, seperti yang ditunjukkan dalam kode sampel berikut.
public class JsonContentTypeMapper : WebContentTypeMapper
{
public override WebContentFormat
GetMessageFormatForContentType(string contentType)
{
if (contentType == "text/javascript")
{
return WebContentFormat.Json;
}
else
{
return WebContentFormat.Default;
}
}
}
Tipe harus mengganti metode GetMessageFormatForContentType(String). Metode harus mengevaluasi contentType argumen dan mengembalikan salah satu nilai berikut: Json, , XmlRaw, atau Default. Mengembalikan Default ke penggunaan pemetaan encoder pesan Web default. Dalam kode sampel sebelumnya, jenis konten text/javascript dipetakan ke JSON, dan semua pemetaan lainnya tetap tidak berubah.
Untuk menggunakan kelas JsonContentTypeMapper, gunakan yang berikut di Web.configAnda:
<system.serviceModel>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" contentTypeMapper="Microsoft.Samples.WebContentTypeMapper.JsonContentTypeMapper, JsonContentTypeMapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Untuk memverifikasi persyaratan untuk menggunakan JsonContentTypeMapper, hapus atribut contentTypeMapper dari file konfigurasi di atas. Halaman klien gagal dimuat saat mencoba menggunakan text/javascript untuk mengirim konten JSON.
Untuk menyiapkan, mengompilasi, dan menjalankan sampel
Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.
Bangun solusi WebContentTypeMapperSample.sln seperti yang dijelaskan dalam Membangun Sampel Windows Communication Foundation.
Navigasi ke
http://localhost/ServiceModelSamples/JCTMClientPage.htm(jangan buka JCTMClientPage.htm di browser dari dalam direktori proyek).