Menghasilkan Klien WCF dari Metadata Layanan

Topik ini menjelaskan cara menggunakan berbagai tombol di Svcutil.exe untuk menghasilkan klien dari dokumen metadata.

Dokumen metadata dapat berada di penyimpanan yang tahan lama atau diambil secara online. Pengambilan online mengikuti protokol WS-MetadataExchange atau protokol Microsoft Discovery (DISCO). Svcutil.exe mengeluarkan permintaan metadata berikut secara bersamaan untuk mengambil metadata:

  • WS-MetadataExchange (MEX) meminta ke alamat yang disediakan.

  • Permintaan MEX ke alamat yang disediakan dengan /mex yang ditambahkan.

  • Permintaan DISCO (menggunakan DiscoveryClientProtocol dari layanan web ASP.NET) ke alamat yang disediakan.

Svcutil.exe menghasilkan klien berdasarkan Web Services Description Language (WSDL) atau file kebijakan yang diterima dari layanan. Nama prinsipal pengguna (UPN) dihasilkan dengan menggabungkan nama pengguna dengan "@" lalu menambahkan nama domain yang sepenuhnya memenuhi syarat (FQDN). Namun, untuk pengguna yang terdaftar di Active Directory Domain Services format ini tidak valid dan UPN yang dihasilkan alat menyebabkan kegagalan dalam autentikasi Kerberos dengan pesan kesalahan berikut: Upaya masuk gagal. Untuk mengatasi masalah ini, perbaiki file klien secara manual yang dihasilkan alat.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

Jenis Referensi dan Pembagian

Opsi Deskripsi
/referensi:<jalur berkas> Jenis referensi dalam rakitan yang telah ditentukan. Saat menghasilkan klien, gunakan opsi ini untuk menentukan rakitan yang mungkin berisi jenis yang mewakili metadata yang sedang diimpor.

Formulir pendek: /r
/excludeType:<jenis> Menentukan nama jenis yang memenuhi syarat sepenuhnya atau memenuhi syarat perakitan yang tidak akan disertakan dalam jenis kontrak yang direferensikan.

Formulir pendek: /et

Memilih Serializer

Opsi Deskripsi
/serializer:Auto Secara otomatis memilih serializer. Ini menggunakan serializer DataContract. Jika gagal, XmlSerializer digunakan.

Formulir Singkat: /ser:Auto
/serializer:DataContractSerializer Membuat jenis data yang menggunakan serializer DataContract untuk serialisasi dan deserialisasi.

Formulir pendek: /ser:DataContractSerializer
/serializer:XmlSerializer Membuat jenis data yang menggunakan XmlSerializer untuk serialisasi dan deserialisasi.

Formulir pendek: /ser:XmlSerializer
/importXmlTypes Mengonfigurasi serializer DataContract untuk mengimpor jenis non-DataContract sebagai jenis IXmlSerializable.

Formulir pendek: /ixt
/dataContractOnly Menghasilkan kode untuk jenis DataContract saja. ServiceContract jenis dihasilkan.

Anda hanya harus menentukan file metadata lokal untuk opsi ini.

Formulir pendek: /dconly

Memilih Bahasa untuk Klien

Opsi Deskripsi
/language:<bahasa pemrograman> Menentukan bahasa pemrograman yang akan digunakan untuk pembuatan kode. Menyediakan nama bahasa pemrograman yang terdaftar dalam file Machine.config atau nama kelas yang sepenuhnya memenuhi syarat yang mewarisi dari CodeDomProvider.

Nilai: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Default: csharp

Formulir pendek: /l

Untuk informasi lebih lanjut, lihat kelas CodeDomProvider.

Memilih Namespace layanan untuk Klien

Opsi Deskripsi
/namespace:<string,string> Menentukan pemetaan dari targetNamespace Skema WSDL atau XML ke namespace layanan runtime bahasa umum (CLR). Menggunakan wildcard (*) untuk peta targetNamespace semua targetNamespaces tanpa pemetaan eksplisit ke namespace layanan CLR tersebut.

Untuk memastikan bahwa nama kontrak pesan tidak bertabrakan dengan nama operasi, kualifikasikan referensi jenis dengan titik dua (::) atau pastikan nama tersebut unik.

Default: Berasal dari namespace layanan target dokumen skema untuk DataContracts. Namespace layanan default digunakan untuk semua jenis lain yang dihasilkan.

Formulir pendek: /n

Memilih Pengikatan Data

Opsi Deskripsi
/enableDataBinding Mengimplementasikan antarmuka INotifyPropertyChanged pada semua jenis DataContract yang dibuat untuk mengaktifkan pengikatan data.

Formulir pendek: /edb

Menghasilkan Konfigurasi

Opsi Deskripsi
/config:<configFile> Menentukan nama file untuk file konfigurasi yang dihasilkan.

Default: output.config
/mergeConfig Menyebabkan konfigurasi yang dihasilkan digabungkan menjadi file yang ada alih-alih menimpa file yang ada.
/noConfig Jangan buat file konfigurasi.

Lihat juga