Syndication-Erweiterbarkeit

Die Syndication-API ist darauf ausgelegt, ein formatunabhängiges Programmiermodell bereitzustellen, mit dem Fremdinhalte in verschiedenen Formaten ausgegeben und direkt übertragen werden können. Das abstrakte Datenmodell besteht aus den folgenden Klassen:

Diese Klassen sind nahezu deckungsgleich mit den in der Atom 1.0-Spezifikation definierten Konstrukten, obwohl manche der Namen anders lauten.

Eine Hauptfunktion von Syndication-Protokollen ist die Erweiterbarkeit. Sowohl Atom 1.0 als auch RSS 2.0 lassen zu, dass Sie Syndication-Feeds Attribute und Elemente hinzufügen, die nicht in den Spezifikationen definiert sind. Das Syndikationsprogrammiermodell der Windows Communication Foundation (WCF) bietet die folgenden Möglichkeiten für die Arbeit mit benutzerdefinierten Attributen und Erweiterungen, den lose getypten Zugriff und die Ableitung einer neuen Klasse.

Zugriff mit flexibler Typbindung

Wenn Erweiterungen durch das Ableiten einer neuen Klasse hinzugefügt werden sollen, muss zusätzlicher Code geschrieben werden. Eine andere Möglichkeit besteht darin, mit flexibler Typbindung auf Erweiterungen zuzugreifen. Alle im abstrakten Datenmodell für Syndication definierten Typen enthalten Eigenschaften namens AttributeExtensions und ElementExtensions (mit einer Ausnahme, SyndicationContent verfügt über die AttributeExtensions-Eigenschaft, nicht aber über die ElementExtensions-Eigenschaft). Diese Eigenschaften sind Auflistungen von Erweiterungen, die nicht von der TryParseAttribute-Methode bzw. der TryParseElement-Methode 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. Dieser Satz 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 jeder im abstrakten Datenmodell vorhandenen Klasse ableiten. Tun Sie dies beim Implementieren einer Anwendung, in der Sie für die meisten Feeds eine bestimmte Erweiterung verwenden. In diesem Thema enthalten die meisten der Feeds, mit denen das Programm arbeitet, eine MyExtension-Erweiterung. Um Ihre Programmiererfahrung zu vertiefen, führen Sie die folgenden Schritte aus:

Siehe auch