Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozhraní SYNDICATION API je navržené tak, aby poskytovalo formátově neutrální programovací model, který umožňuje zápis syndikovaného obsahu do drátu v různých formátech. Abstraktní datový model se skládá z následujících tříd:
Tyto třídy mapují úzce na konstrukty definované ve specifikaci Atom 1.0, i když některé názvy jsou odlišné.
Klíčovou funkcí syndikačních protokolů je rozšiřitelnost. Atom 1.0 i RSS 2.0 přidávají atributy a prvky do kanálů syndikace, které nejsou definovány ve specifikacích. Programovací model syndikace WCF (Windows Communication Foundation) poskytuje následující způsoby práce s vlastními atributy a rozšířeními, přístupem s volně definovanými typy a odvozením nové třídy.
Volně zadaný přístup
Přidání rozšíření odvozením nové třídy vyžaduje zápis dalšího kódu. Další možností je přístup k rozšířením volně napsaným způsobem. Všechny typy definované v abstraktním syndikačním datovém modelu obsahují vlastnosti pojmenované AttributeExtensions a ElementExtensions (s jednou výjimkou, SyndicationContent má vlastnost AttributeExtensions, ale nemá vlastnost ElementExtensions). Tyto vlastnosti jsou kolekce rozšíření, které nejsou zpracovány metodami TryParseAttribute a TryParseElement. K těmto nezpracovaným rozšířením můžete přistupovat voláním SyndicationElementExtensionCollection.ReadElementExtensions na ElementExtensions vlastnosti SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson a SyndicationCategory. Tato sada metod najde všechna rozšíření se zadaným názvem a oborem názvů, deserializuje je jednotlivě do instancí TExtension a vrátí je jako kolekci TExtension objektů.
Odvození nové třídy
Novou třídu můžete odvodit z jakékoli z existujících abstraktních tříd datového modelu. Proveďte to při implementaci aplikace, ve které má většina informačních kanálů, se kterými pracujete, konkrétní rozšíření. V tomto tématu většina informačních kanálů, se kterými program pracuje, obsahuje rozšíření MyExtension. Pokud chcete poskytnout vylepšené možnosti programování, proveďte následující kroky:
Vytvořte třídu pro uložení dat rozšíření. V tomto případě vytvořte třídu s názvem MyExtension.
Odvoďte třídu s názvem MyExtensionItem z SyndicationItem pro vystavení vlastnosti typu MyExtension pro účely programovatelnosti.
Přepište TryParseElement(XmlReader, String) ve třídě MyExtensionItem pro vytvoření nové instance MyExtension, když se MyExtension načte.
Přepište WriteElementExtensions(XmlWriter, String) ve třídě MyExtensionItem, abyste zapsali obsah vlastnosti MyExtension do zapisovače XML.
Odvození třídy s názvem MyExtensionFeed z SyndicationFeed.
Přepište CreateItem() ve třídě MyExtensionFeed pro vytvoření instance MyExtensionItem místo výchozí SyndicationItem. V SyndicationFeed a SyndicationItem jsou definovány metody, které mohou vytvářet objekty SyndicationLink, SyndicationCategory a SyndicationPerson (například CreateLink(), CreateCategory() a CreatePerson()). Všechny z nich lze přepracovat k vytvoření vlastní odvozené třídy.