Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API Syndication est conçue pour fournir un modèle de programmation neutre en format qui permet à un contenu syndiqué d’être écrit dans le câble dans un large éventail de formats. Le modèle de données abstrait se compose des classes suivantes :
Ces classes correspondent étroitement aux constructions définies dans la spécification Atom 1.0, bien que certains noms soient différents.
Une fonctionnalité clé des protocoles de syndication est l’extensibilité. Atom 1.0 et RSS 2.0, ajoutez des attributs et des éléments aux flux de syndication qui ne sont pas définis dans les spécifications. Le modèle de programmation de syndication Windows Communication Foundation (WCF) fournit les méthodes suivantes d’utilisation d’attributs et d’extensions personnalisés, d’un accès faiblement typé et de dérivation d’une nouvelle classe.
Accès peu typé
L’ajout d’extensions en dérivant une nouvelle classe nécessite 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 abstrait de syndication contiennent des propriétés nommées AttributeExtensions et ElementExtensions (à une exception près, SyndicationContent possède une AttributeExtensions propriété mais aucune ElementExtensions propriété). Ces propriétés sont des collections d’extensions non traitées respectivement par les méthodes TryParseAttribute et TryParseElement. Vous pouvez accéder à ces extensions non traitées en appelant SyndicationElementExtensionCollection.ReadElementExtensions sur la ElementExtensions propriété de SyndicationFeed, , SyndicationItem, SyndicationLink, SyndicationPersonet SyndicationCategory. Cet ensemble de méthodes recherche toutes les extensions avec le nom et l’espace de noms spécifiés, les désérialise individuellement en instances de TExtension et les retourne sous la forme d'une collection d’objets TExtension.
Dérivation d’une nouvelle classe
Vous pouvez dériver une nouvelle classe de l’une des classes de modèle de données abstraites existantes. Lorsque vous implémentez une application où la plupart des flux que vous traitez possèdent une extension particulière, faites cela. Dans cette rubrique, la plupart des flux que le programme utilise contiennent une MyExtension extension. Pour offrir une expérience de programmation améliorée, procédez comme suit :
Créez une classe pour contenir les données d’extension. Dans ce cas, créez une classe appelée MyExtension.
Dérivez une classe appelée MyExtensionItem à partir de SyndicationItem pour exposer une propriété de type MyExtension à des fins de programmabilité.
Remplacez TryParseElement(XmlReader, String) dans la classe MyExtensionItem pour instancier une nouvelle instance MyExtension lorsqu’une myExtension est lue.
Remplacez WriteElementExtensions(XmlWriter, String) dans la classe MyExtensionItem pour écrire le contenu de la propriété MyExtension dans un enregistreur XML.
Dérivez une classe appelée MyExtensionFeed de SyndicationFeed.
Remplacez CreateItem() dans la classe MyExtensionFeed pour instancier un MyExtensionItem au lieu de la valeur par défaut SyndicationItem. Une série de méthodes est définie dans SyndicationFeed et SyndicationItem qui peut créer des objets SyndicationLink, SyndicationCategory, et SyndicationPerson (par exemple, CreateLink(), CreateCategory(), et CreatePerson()). Tout cela peut être redéfini pour créer une classe dérivée personnalisée.