Aracılığıyla paylaş


WCF Uzantısı için Özel Meta Verileri İçe Aktarma

Windows Communication Foundation'da (WCF), meta veri içeri aktarma işlemi, meta verilerinden bir hizmetin veya bileşen parçalarının soyut bir gösterimini oluşturma işlemidir. Örneğin, WCF bir hizmet için WSDL belgesinden örnekleri, Binding örnekleri veya ContractDescription örnekleri içeri aktarabilirServiceEndpoint. WCF'de hizmet meta verilerini içeri aktarmak için soyut sınıfın System.ServiceModel.Description.MetadataImporter bir uygulamasını kullanın. sınıfından MetadataImporter türetilen türler, WCF'deki WS-policy içeri aktarma mantığından yararlanan meta veri biçimlerini içeri aktarma desteği uygular.

Özel meta veriler, sistem tarafından sağlanan meta veri içeri aktarıcılarının içeri aktaramadığı XML öğelerinden oluşur. Bu genellikle özel WSDL uzantılarını ve özel ilke onaylarını içerir.

Bu bölümde özel WSDL uzantılarının ve ilke onaylarının nasıl içeri aktarıldığı açıklanmaktadır. İçeri aktarma işleminin kendisine odaklanmaz. Meta verilerin özel veya sistem tarafından desteklenip desteklenmediğine bakılmaksızın meta verileri dışarı ve içeri aktaran türleri kullanma hakkında daha fazla bilgi için bkz . Meta Verileri Dışarı Ve İçeri Aktarma.

Genel bakış

türü System.ServiceModel.Description.WsdlImporter , WCF ile birlikte gelen soyut sınıfın MetadataImporter uygulamasıdır. türü, WsdlImporter bir System.ServiceModel.Description.MetadataSet nesnede paketlenmiş ekli ilkelerle WSDL meta verilerini içeri aktarır. Varsayılan içeri aktarıcıların tanımadığı ilke onayları ve WSDL uzantıları, herhangi bir kayıtlı özel ilkeye ve içeri aktarma için WSDL içeri aktarıcılarına geçirilir. Genellikle, içeri aktarıcılar kullanıcı tanımlı bağlama öğelerini desteklemek veya içeri aktarılan sözleşmeyi değiştirmek için uygulanır.

Bu bölümde aşağıdakiler açıklanmaktadır:

  1. WSDL verilerini açıklama oluşturmadan ve kod oluşturmadan önce özel içeri aktarıcıların kullanımına sunan arabirimini uygulama ve kullanma System.ServiceModel.Description.IWsdlImportExtension . Belirli bir meta veri kümesi kullanılarak gerçekleştirilen açıklama türlerini ve kod derlemesini incelemek veya değiştirmek için bu arabirimi kullanabilirsiniz.

  2. Açıklama nesnelerinin oluşturulmasından System.ServiceModel.Description.IPolicyImportExtension önce içeri aktarıcılara ilke onaylarını kullanıma sunan arabirimi uygulama ve kullanma. Bu arabirimi, indirilen ilkelere göre bağlamayı veya sözleşmeyi incelemek veya değiştirmek için kullanabilirsiniz.

Özel WSDL'yi ve ilke onaylarını dışarı aktarma hakkında daha fazla bilgi için bkz . WCF Uzantısı için Özel Meta Verileri Dışarı Aktarma.

Özel WSDL Uzantılarını İçeri Aktarma

WSDL uzantılarını içeri aktarma desteği eklemek için arabirimini IWsdlImportExtension uygulayın ve ardından uygulamanızı özelliğine WsdlImportExtensions ekleyin. , WsdlImporter uygulama yapılandırma dosyanıza kayıtlı arabirimin IWsdlImportExtension uygulamalarını da yükleyebilir. Bir dizi WSDL içeri aktarıcısının varsayılan olarak kaydedildiğini ve kayıtlı WSDL içeri aktarıcılarının sırasının önemli olduğunu unutmayın.

özel WSDL içeri aktarıcısı tarafından yüklenip kullanıldığında WsdlImporter, içeri aktarma işleminden BeforeImport önce meta verilerin değiştirilmesini etkinleştirmek için ilk olarak yöntemi çağrılır. Daha sonra, meta verilerden içeri aktarılan ImportContract sözleşmelerin değiştirilmesini etkinleştirmek için yönteminin çağrıldığı anlaşmalar içeri aktarılır. Son olarak, ImportEndpoint içeri aktarılan uç noktaların değiştirilmesini etkinleştirmek için yöntemi çağrılır.

Daha fazla bilgi için bkz . Nasıl yapılır: Özel WSDL İçeri Aktarma.

Özel İlke Onaylarını İçeri Aktarma

türü WsdlImporter ve ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe), WSDL belgelerine eklenen ilke ifadelerinde çeşitli ilke onay türlerini işlemeyi otomatik olarak işler. Bu araçlar WSDL bağlamalarına ve WSDL bağlantı noktalarına eklenmiş ilke ifadelerini toplar, normalleştirir ve birleştirir.

Özel ilke onaylarını içeri aktarma desteği eklemek için arabirimini IPolicyImportExtension uygulayın ve ardından uygulamanızı özelliğine PolicyImportExtensions ekleyin. , MetadataImporter uygulama yapılandırma dosyanıza kayıtlı arabirimin IPolicyImportExtension uygulamalarını da yükleyebilir. Bir dizi ilke içeri aktarıcısının varsayılan olarak kaydedildiğini ve kayıtlı ilke içeri aktarıcılarının sırasının önemli olduğunu unutmayın.

Meta veri sistemi, ileti, işlem ve uç nokta ilkesi konularına eklenen ilke alternatiflerinin her birleşimi için tüm kayıtlı ilke içeri aktarma uzantılarında yöntemini sürekli olarak çağırır IPolicyImportExtension.ImportPolicy . WSDL bağlantı noktası içeri aktarılırken, ilke içeri aktarma uzantıları çağrılmadan önce bağlantı noktasına ve ilgili WSDL bağlamasına eklenen ilkeler birleştirilir. İlke alternatifleri bir PolicyConversionContext nesne olarak PolicyAssertionCollection kullanılabilir hale getirilir. Her PolicyAssertionCollection biri, nesneler tarafından XmlElement temsil edilen ilke onayları koleksiyonudur.

Contract Nesnedeki PolicyConversionContext ve BindingElements özellikleri, WSDL'den içeri aktarılan ve BindingElement nesnelerini kullanıma sunarContractDescription. İlke içeri aktarma uzantıları, belirli bir ilke onay türünün örneklerini bularak, veya BindingElement nesnelerinde ilgili değişiklikleri ContractDescription yaparak ve ardından ilke onaylarını ilgili PolicyAssertionCollection örnekten kaldırarak ilke onaylarını işler.

wsp:Optional Öznitelik ve iç içe ilke ifadeleri normalleştirilmediğinden, ilke içeri aktarma uzantılarının bu ilke yapılarını işlemesi gerekir. Ayrıca, ilke içeri aktarma uzantıları aynı ContractDescription ve BindingElement nesnelerle birden çok kez çağrılabilir, bu nedenle ilke içeri aktarma uzantıları bu davranışa karşı sağlam olmalıdır.

Önemli

İçeri aktarıcıya geçersiz veya yanlış meta veriler geçirilebilir. Özel içeri aktarıcıların tüm XML biçimleri için sağlam olduğundan emin olun.

Ayrıca bkz.