Aracılığıyla paylaş


Hizmet Meta Verilerinden WCF İstemcisi Oluşturma

Bu konuda, meta veri belgelerinden istemci oluşturmak için Svcutil.exe'daki çeşitli anahtarların nasıl kullanılacağı açıklanmaktadır.

Meta veri belgeleri dayanıklı bir depolamada olabilir veya çevrimiçi olarak alınabilir. Çevrimiçi alma, WS-MetadataExchange protokollerini veya Microsoft Discovery (DISCO) protokollerini izler. Svcutil.exe, meta verileri almak için aşağıdaki meta veri isteklerini aynı anda düzenler:

  • Sağlanan adrese WS-MetadataExchange (MEX) isteği.

  • Ekli olarak /mex sağlanan adrese MEX isteği.

  • Sağlanan adrese DiscoveryClientProtocol DISKO isteği (ASP.NET Web hizmetlerinden kullanarak).

Svcutil.exe, istemciyi hizmetten alınan Web Hizmetleri Açıklama Dili'ne (WSDL) veya ilke dosyasına göre oluşturur. Kullanıcı asıl adı (UPN), kullanıcı adı "@" ile birleştirilerek ve ardından tam etki alanı adı (FQDN) eklenerek oluşturulur. Ancak, Active Directory'ye kaydolan kullanıcılar için bu biçim geçerli değildir ve aracın oluşturduğu UPN Kerberos kimlik doğrulamasında şu hata iletisiyle bir hataya neden olur: Oturum açma girişimi başarısız oldu. Bu sorunu çözmek için aracın oluşturduğu istemci dosyasını el ile düzeltin.

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

Başvuru ve Paylaşım Türleri

Seçenek Açıklama
/reference:<file path> Belirtilen derlemedeki türlere başvurur. İstemcileri oluştururken, içeri aktarılan meta verileri temsil eden türler içerebilecek derlemeleri belirtmek için bu seçeneği kullanın.

Kısa form: /r
/excludeType:<type> Başvuruda bulunulduğu sözleşme türlerinden dışlanacak tam veya bütünleştirilmiş tür adını belirtir.

Kısa form: /et

Seri Hale Getirici Seçme

Seçenek Açıklama
/serializer:Auto Seri hale getiriciyi otomatik olarak seçer. Bu, seri hale getiriciyi DataContract kullanır. Bu başarısız olursa, XmlSerializer kullanılır.

Kısa Form: /ser:Auto
/serializer:DataContractSerializer Seri hale getirme ve seri durumdan çıkarma için seri hale getiriciyi DataContract kullanan veri türleri oluşturur.

Kısa form: /ser:DataContractSerializer
/serializer:XmlSerializer Serileştirme ve seri durumdan çıkarma için kullanan XmlSerializer veri türleri oluşturur.

Kısa form: /ser:XmlSerializer
/importXmlTypes Seri hale getiriciyi DataContract tür olarak tür olmayanlarıDataContract içeri aktaracak şekilde IXmlSerializable yapılandırır.

Kısa form: /ixt
/dataContractOnly Yalnızca türler için DataContract kod oluşturur. ServiceContract türleri oluşturulur.

Bu seçenek için yalnızca yerel meta veri dosyalarını belirtmelisiniz.

Kısa form: /dconly

İstemci için Dil Seçme

Seçenek Açıklama
/language:<language> Kod oluşturma için kullanılacak programlama dilini belirtir. Machine.config dosyasında kayıtlı bir dil adı veya öğesinden CodeDomProviderdevralan bir sınıfın tam adını sağlayın.

Değerler: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Varsayılan: csharp

Kısa form: /l

Daha fazla bilgi için bkz CodeDomProvider . sınıf.

İstemci için Ad Alanı Seçme

Seçenek Açıklama
/namespace:<string,string> WSDL veya XML Şemasından targetNamespace ortak dil çalışma zamanı (CLR) ad alanına eşlemeyi belirtir. Bu CLR ad alanına açık bir eşleme olmadan eşlemeler targetNamespacetargetNamespaces için joker karakter (*) kullanma.

İleti sözleşmesi adının işlem adıyla harmanlanmadığından emin olmak için, tür başvuruyu iki nokta üst üste (::) ile niteleyin veya adların benzersiz olduğundan emin olun.

Varsayılan: için DataContractsşema belgesinin hedef ad alanından türetilir. Varsayılan ad alanı, oluşturulan diğer tüm türler için kullanılır.

Kısa form: /n

Veri Bağlama Seçme

Seçenek Açıklama
/enableDataBinding Veri bağlamayı INotifyPropertyChanged etkinleştirmek için tüm DataContract türlerde arabirimini uygular.

Kısa form: /edb

Yapılandırma Oluşturuluyor

Seçenek Açıklama
/config:<configFile> Oluşturulan yapılandırma dosyasının dosya adını belirtir.

Varsayılan: output.config
/mergeConfig Oluşturulan yapılandırmayı varolan dosyanın üzerine yazmak yerine varolan bir dosyayla birleştirir.
/noConfig Yapılandırma dosyaları oluşturmayın.

Ayrıca bkz.