Dağıtım Genişletilebilirliği
Dağıtım API'si, genelleştirilmiş içeriğin çeşitli biçimlerde kabloya yazılmasını sağlayan, biçimsiz bir programlama modeli sağlamak üzere tasarlanmıştır. Soyut veri modeli aşağıdaki sınıflardan oluşur:
Bu sınıflar, bazı adlar farklı olsa da Atom 1.0 belirtiminde tanımlanan yapılarla yakından eşlenir.
Dağıtım protokollerinin temel özelliklerinden biri genişletilebilirliktir. Hem Atom 1.0 hem de RSS 2.0, belirtimlerde tanımlanmayan dağıtım akışlarına öznitelikler ve öğeler ekler. Windows Communication Foundation (WCF) dağıtım programlama modeli, özel öznitelikler ve uzantılarla çalışmak, gevşek türetilmiş erişim ve yeni bir sınıf türetmek için aşağıdaki yolları sağlar.
Gevşek TüreMiş Erişim
Yeni bir sınıf türeterek uzantı eklemek için ek kod yazılması gerekir. Diğer bir seçenek de uzantılara gevşek bir şekilde erişmektir. Dağıtım soyut veri modelinde tanımlanan tüm türler ve adlı AttributeExtensions
özellikleri içerir (tek bir özel durum dışında özelliği AttributeExtensions
SyndicationContent vardır ancak özelliği yokturElementExtensions
).ElementExtensions
Bu özellikler sırasıyla ve TryParseElement
yöntemleri tarafından TryParseAttribute
işlenmemiş uzantı koleksiyonlarıdır. , , SyndicationItem, ve özelliğini çağırarak SyndicationElementExtensionCollection.ReadElementExtensionsElementExtensions
bu işlenmemiş uzantılara erişebilirsiniz.SyndicationFeedSyndicationCategorySyndicationPersonSyndicationLink Bu yöntem kümesi, belirtilen ad ve ad alanına sahip tüm uzantıları bulur, bunların seri durumdan çıkarılarak örneklerine TExtension
ayrılır ve bunları bir nesne koleksiyonu TExtension
olarak döndürür.
Yeni Sınıf Türetme
Mevcut soyut veri modeli sınıflarından herhangi birinden yeni bir sınıf türetebilirsiniz. Üzerinde çalıştığınız akışların çoğunun belirli bir uzantıya sahip olduğu bir uygulama uygularken bunu yapın. Bu konu başlığında, programın birlikte çalıştığı akışların çoğu bir MyExtension
uzantı içerir. Geliştirilmiş bir programlama deneyimi sağlamak için aşağıdaki adımları uygulayın:
Uzantı verilerini tutmak için bir sınıf oluşturun. Bu durumda MyExtension adlı bir sınıf oluşturun.
Programlanabilirlik amacıyla MyExtension türünde bir özelliği kullanıma açmak için öğesinden SyndicationItem MyExtensionItem adlı bir sınıf türetin.
MyExtension okunduğunda yeni bir MyExtension örneğinin örneğini oluşturmak için MyExtensionItem sınıfında geçersiz kılın TryParseElement(XmlReader, String) .
MyExtension özelliğinin içeriğini bir XML yazıcısına yazmak için MyExtensionItem sınıfında geçersiz kılın WriteElementExtensions(XmlWriter, String) .
öğesinden SyndicationFeedMyExtensionFeed adlı bir sınıf türetin.
Varsayılan SyndicationItemyerine MyExtensionItem örneği oluşturmak için MyExtensionFeed sınıfında geçersiz kılınCreateItem(). içinde SyndicationFeed tanımlanan ve SyndicationItem , SyndicationCategoryve nesneleri (örneğin, CreateLink(), CreateCategory()CreatePerson()ve SyndicationPerson ) oluşturabilen SyndicationLinkbir dizi yöntem vardır. Bunların tümü özel türetilmiş bir sınıf oluşturmak için geçersiz kılınabilir.