Aracılığıyla paylaş


Meta Verileri Dışarı ve İçeri Aktarma

Windows Communication Foundation'da (WCF) meta verileri dışarı aktarmak, hizmet uç noktalarını açıklama ve istemcilerin hizmetin nasıl kullanılacağını anlamak için kullanabileceği paralel, standartlaştırılmış bir gösterime yansıtma işlemidir. Hizmet meta verilerini içeri aktarmak, hizmet meta verilerinden örnekler veya parçalar oluşturma ServiceEndpoint işlemidir.

Meta Verileri Dışarı Aktarma

Örneklerden System.ServiceModel.Description.ServiceEndpoint meta verileri dışarı aktarmak için soyut sınıfın MetadataExporter bir uygulamasını kullanın. türü WsdlExporter , WCF ile birlikte gelen soyut sınıfın MetadataExporter uygulamasıdır.

Türü, System.ServiceModel.Description.WsdlExporter bir MetadataSet örnekte kapsüllenmiş ekli ilke ifadeleriyle Web Hizmetleri Açıklama Dili (WSDL) meta verileri oluşturur. Nesneler ve ServiceEndpoint nesneler için meta verileri yinelemeli olarak dışarı aktarmak için ContractDescription bir System.ServiceModel.Description.WsdlExporter örneği kullanabilirsiniz. Ayrıca bir nesne koleksiyonunu ServiceEndpoint dışarı aktarabilir ve bunları belirli bir hizmet adıyla ilişkilendirebilirsiniz.

Not

WsdlExporter yöntemini kullanarak ContractDescription.GetContract oluşturulan veya örneğin bir parçası ServiceDescription olarak oluşturulan örnek ContractDescription gibi ortak dil çalışma zamanı (CLR) türü bilgilerini içeren örneklerden ContractDescription meta verileri dışarı aktarmak için ServiceHost kullanabilirsiniz. hizmet meta verilerinden ContractDescription içeri aktarılan veya tür bilgileri olmadan oluşturduğunuzda örneklerden meta verileri dışarı aktarmak için öğesini WsdlExporter kullanamazsınız.

Meta Verileri İçeri Aktarma

WSDL Belgelerini İçeri Aktarma

WCF'de hizmet meta verilerini içeri aktarmak için soyut sınıfın MetadataImporter bir uygulamasını kullanın. türü System.ServiceModel.Description.WsdlImporter , WCF ile birlikte gelen soyut sınıfın MetadataImporter uygulamasıdır. Türü, WsdlImporter bir MetadataSet nesnede paketlenmiş ekli ilkeler içeren WSDL meta verilerini içeri aktarır.

türü, WsdlImporter meta verilerin nasıl içeri aktarılacağını denetlemenizi sağlar. Tüm uç noktaları, tüm bağlamaları veya tüm sözleşmeleri içeri aktarabilirsiniz. Belirli bir WSDL hizmeti, bağlama veya bağlantı noktası türüyle ilişkili tüm uç noktaları içeri aktarabilirsiniz. Ayrıca, belirli bir WSDL bağlantı noktası için uç noktayı, belirli bir WSDL bağlamasının bağlamasını veya belirli bir WSDL bağlantı noktası türü için sözleşmeyi içeri aktarabilirsiniz.

ayrıca WsdlImporter , içeri aktarılması gerekmeyen bir dizi sözleşme belirtmenize olanak tanıyan bir özelliği de kullanıma sunar KnownContracts . , WsdlImporter meta verilerden aynı nitelenmiş ada sahip bir sözleşmeyi içeri aktarmak yerine özelliğindeki sözleşmeleri KnownContracts kullanır.

İlkeleri İçeri Aktarma

türü, WsdlImporter ileti, işlem ve uç nokta ilkesi konularına eklenen ilke ifadelerini toplar ve ardından ilke ifadelerini içeri aktarmak için koleksiyondaki PolicyImportExtensions uygulamaları kullanırIPolicyImportExtension.

İlke içeri aktarma mantığı, aynı WSDL belgesindeki ilke ifadelerine yönelik ilke başvurularını otomatik olarak işler ve bir wsu:Id veya xml:id özniteliğiyle tanımlanır. İlke içeri aktarma mantığı, bir ilke ifadesinin boyutunu 4096 düğümle sınırlayarak uygulamaları döngüsel ilke başvurularına karşı korur; burada bir düğüm aşağıdaki öğelerden biridir: wsp:Policy, , wsp:Allwsp:ExactlyOne, , wsp:policyReference.

İlke içeri aktarma mantığı, ilke ifadelerini de otomatik olarak normalleştirir. İç içe ilke ifadeleri ve wsp:Optional özniteliği normalleştirilmemiştir. Yapılan normalleştirme işleminin miktarı, her adımın bir ilke onayı veya bir öğenin alt öğesi olduğu 4096 adımla wsp:ExactlyOne sınırlıdır.

Türü, WsdlImporter farklı WSDL ilke konularına eklenen en fazla 32 ilke alternatifi bileşimini dener. Hiçbir birleşim temiz bir şekilde içeri aktarılmıyorsa, kısmi bir özel bağlama oluşturmak için ilk birleşim kullanılır.

Hata İşleme

MetadataExporter Hem hem de MetadataImporter türleri, dışarı ve içeri aktarma işlemleri sırasında karşılaşılan ve araçlar uygulanırken kullanılabilen hata ve uyarı iletilerinin bir koleksiyonunu içerebilen bir Errors özelliği kullanıma sunar.

türü WsdlImporter genellikle içeri aktarma işlemi sırasında yakalanan bir özel durum için bir özel durum oluşturur ve özelliğine Errors karşılık gelen bir hata ekler. ImportAllContractsAncak , ImportAllBindings, ImportAllEndpointsve ImportEndpoints yöntemleri bu özel durumları oluşturmaz, bu nedenle bu yöntemleri çağırırken herhangi bir sorun oluşup oluşmadığını belirlemek için özelliğini denetlemeniz Errors gerekir.

türü, WsdlExporter dışarı aktarma işlemi sırasında yakalanan özel durumları yeniden oluşturur. Bu özel durumlar özelliğinde Errors hata olarak yakalanmaz. WsdlExporter Bir özel durum oluşturduktan sonra hatalı durumdadır ve yeniden kullanılamaz. , WsdlExporter bir işlem joker karakter eylemleri kullandığından ve yinelenen bağlama adlarıyla Errors karşılaşıldığında dışarı aktarılamadığında özelliğine uyarılar ekler.

Bu Bölümde

Nasıl yapılır: Hizmet Uç Noktalarına Meta Verileri İçe Aktarma
İndirilen meta verilerin açıklama nesnelerine nasıl aktarılacağını açıklar.

Nasıl yapılır: Hizmet Uç Noktalarından Meta Verileri Dışarı Aktarma
Açıklama nesnelerinin meta veriler halinde nasıl dışarı aktarıldığı açıklanır.

ServiceDescription ve WSDL Başvurusu
Açıklama nesneleri ile WSDL arasındaki eşlemeyi açıklar.

Nasıl yapılır: Meta Verileri Derlenmiş Hizmet Kodundan Dışarı Aktarmak için Svcutil.exe Kullanma
Derlenmiş derlemelerdeki hizmetler, sözleşmeler ve veri türleri için meta verileri dışarı aktarmak için Svcutil.exe kullanımını açıklar.

Veri Sözleşmesi Şema Başvurusu
XML serileştirme için ortak dil çalışma zamanı (CLR) türlerini açıklamak için tarafından DataContractSerializer kullanılan XML Şemasının (XSD) alt kümesini açıklar.

Başvuru

WsdlExporter

WsdlImporter

Ayrıca bkz.