Partager via


Extensibilité de la syndication

L'API de syndication est conçue pour fournir un modèle de programmation neutre en ce qui concerne le format qui autorise l'écriture du contenu syndiqué sur le câble dans divers formats. Le modèle de données abstrait inclut les classes suivantes :

Ces classes mappent précisément aux constructions définies dans la spécification Atom 1.0, bien que certains noms soient différents.

L’une des fonctionnalités clés de protocoles de syndication est l’extensibilité. Atom 1.0 et RSS 2.0 ajoutent des attributs et des éléments aux flux de syndication des attributs et des éléments qui ne sont pas définis dans les spécifications. Le modèle de programmation de la syndication Windows Communication Foundation (WCF) offre les moyens suivants d’utiliser des attributs personnalisés et des extensions : la dérivation d’une nouvelle classe et l’accès peu typé.

Accès peu typé

L’ajout des extensions en dérivant une classe nouvelle requiert l’écriture de code supplémentaire. Une autre option accède aux extensions d’une manière peu typée. Tous les types définis dans le modèle de données abstraites de syndication contiennent des propriétés nommées AttributeExtensions et ElementExtensions (avec une exception, SyndicationContent possède une propriété AttributeExtensions mais aucune propriété ElementExtensions ). Ces propriétés sont des collections d'extensions non traitées par les méthodes TryParseAttribute et TryParseElement, respectivement. Vous pouvez accéder à ces extensions non traitées en appelant SyndicationElementExtensionCollection.ReadElementExtensions sur la propriété ElementExtensions de SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson et SyndicationCategory. Ce jeu de méthodes recherche toutes les extensions avec le nom et l'espace de noms spécifiés, les désérialise individuellement dans les instances de TExtension et les retourne comme une collection d'objets TExtension.

Dérivation d'une nouvelle classe

Vous pouvez dériver une classe nouvelle à partir des classes de modèle de données abstraites existantes. Procédez ainsi lors de l’implémentation d’une application dans laquelle la plupart des flux que vous utilisez ont une extension particulière. Dans cette rubrique, la plupart des flux que le programme utilise contiennent une extension MyExtension. Pour fournir une expérience de programmation améliorée, procédez comme suit :

Voir aussi