Freigeben über


Syndizierungserweiterbarkeit

Die Syndication-API wurde entwickelt, um ein formatneutrales Programmiermodell bereitzustellen, mit dem syndizierte Inhalte in einer Vielzahl von Formaten in das Draht geschrieben werden können. Das abstrakte Datenmodell besteht aus den folgenden Klassen:

Diese Klassen sind eng mit den in der Atom 1.0-Spezifikation definierten Konstrukten verbunden, obwohl einige der Namen unterschiedlich sind.

Ein wichtiges Feature von Veröffentlichungsprotokollen ist die Erweiterbarkeit. Sowohl Atom 1.0 als auch RSS 2.0 fügen Attribute und Elemente zu Veröffentlichungsfeeds hinzu, die in den Spezifikationen nicht definiert sind. Das Windows Communication Foundation (WCF)-Veröffentlichungsprogrammiermodell bietet die folgenden Möglichkeiten zum Arbeiten mit benutzerdefinierten Attributen und Erweiterungen, lose typiertem Zugriff und Ableiten einer neuen Klasse.

Zugriff mit flexibler Typbindung

Zum Hinzufügen von Erweiterungen durch Ableiten einer neuen Klasse müssen zusätzlichen Code geschrieben werden. Eine andere Möglichkeit besteht darin, mit flexibler Typbindung auf Erweiterungen zuzugreifen. Alle Typen, die im syndikation abstrakten Datenmodell definiert sind, enthalten Eigenschaften namens AttributeExtensions und ElementExtensions (mit einer Ausnahme, SyndicationContent besitzt eine AttributeExtensions Eigenschaft, aber keine ElementExtensions Eigenschaft). Diese Eigenschaften sind Sammlungen von Erweiterungen, die nicht von den TryParseAttribute- und TryParseElement-Methoden verarbeitet werden. Sie können auf diese unverarbeiteten Erweiterungen zugreifen, indem Sie SyndicationElementExtensionCollection.ReadElementExtensions für die ElementExtensions-Eigenschaft von SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson und SyndicationCategory aufrufen. Diese Gruppe von Methoden findet alle Erweiterungen mit dem angegebenen Namen und Namespace, deserialisiert sie einzeln in Instanzen von TExtension und gibt sie als Auflistung von TExtension Objekten zurück.

Ableiten einer neuen Klasse

Sie können eine neue Klasse von einer der vorhandenen abstrakten Datenmodellklassen ableiten. Gehen Sie dazu vor, wenn Sie eine Anwendung implementieren, in der die meisten Feeds, mit denen Sie arbeiten, eine bestimmte Erweiterung aufweisen. In diesem Thema enthalten die meisten der Feeds, mit denen das Programm arbeitet, eine MyExtension-Erweiterung. Führen Sie die folgenden Schritte aus, um eine verbesserte Programmierumgebung bereitzustellen:

Siehe auch