Estendibilità della diffusioneSyndication Extensibility

L'API di diffusione è progettata per fornire un modello di programmazione di formato neutro che consente di scrivere in rete il contenuto diffuso in molteplici formati.The Syndication API is designed to provide a format-neutral programming model that allows syndicated content to be written to the wire in a variety of formats. Il modello di dati astratto è costituito dalle classi seguenti:The abstract data model consists of the following classes:

Queste classi eseguono il mapping in modo rigoroso ai costrutti definiti nella specifica Atom 1.0, anche se alcuni dei nomi sono diversi.These classes map closely to the constructs defined in the Atom 1.0 specification, although some of the names are different.

Una funzionalità chiave dei protocolli di diffusione è l'estensibilità.A key feature of syndication protocols is extensibility. Sia Atom 1.0 che RSS 2.0 aggiungono attributi ed elementi ai feed di diffusione che non sono definiti nelle specifiche.Both Atom 1.0 and RSS 2.0, add attributes and elements to syndication feeds that are not defined in the specifications. Il modello di programmazione di diffusione di Windows Communication Foundation (WCF) offre le seguenti modalità di utilizzo di attributi personalizzati ed estensioni, accesso non fortemente tipizzato e derivazione di una nuova classe.The Windows Communication Foundation (WCF) syndication programming model provides the following ways of working with custom attributes and extensions, loosely-typed access and deriving a new class.

Accesso non fortemente tipizzatoLoosely Typed Access

L'aggiunta di estensioni tramite la derivazione di una nuova classe richiede che venga scritto codice aggiuntivo.Adding extensions by deriving a new class requires writing additional code. Un'altra opzione consiste nell'accedere alle estensioni in modo non fortemente tipizzato.Another option is accessing extensions in a loosely-typed way. Tutti i tipi definiti nel modello di dati astratto di diffusione contengono le proprietà denominate AttributeExtensions e ElementExtensions (con un'eccezione, SyndicationContent ha una proprietà AttributeExtensions ma nessuna proprietà ElementExtensions).All of the types defined in the syndication abstract data model contain properties named AttributeExtensions and ElementExtensions (with one exception, SyndicationContent has an AttributeExtensions property but no ElementExtensions property). Queste proprietà sono raccolte di estensioni non elaborate rispettivamente dai metodi TryParseAttribute e TryParseElement.These properties are collections of extensions not processed by the TryParseAttribute and TryParseElement methods respectively. È possibile accedere a queste estensioni non elaborate chiamando SyndicationElementExtensionCollection.ReadElementExtensions sulla proprietà ElementExtensions di SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson e SyndicationCategory.You can access these unprocessed extensions by calling SyndicationElementExtensionCollection.ReadElementExtensions on the ElementExtensions property of SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson, and SyndicationCategory. Questo set di metodi cerca tutte le estensioni con il nome e lo spazio dei nomi specificati, le deserializza singolarmente in istanze di TExtension e le restituisce come una raccolta di oggetti TExtension.This set of methods finds all extensions with the specified name and namespace, deserializes them individually into instances of TExtension and returns them as a collection of TExtension objects.

Derivazione di una nuova classeDeriving a New Class

È possibile derivare una nuova classe da qualsiasi classe di modello di dati astratto esistente.You can derive a new class from any of the existing abstract data model classes. Adottare questo approccio quando si implementa un'applicazione in cui la maggior parte dei feed utilizzati ha un'estensione particolare.Do this when implementing an application in which most of the feeds you are working with have a particular extension. In questo argomento, la maggior parte dei feed utilizzati dal programma contiene un'estensione MyExtension.In this topic, most of the feeds that the program works with contain a MyExtension extension. Per offrire una migliore esperienza di programmazione, eseguire le operazioni seguenti:To provide an improved programming experience, do the following steps:

Vedere ancheSee Also

Panoramica della diffusione WCFWCF Syndication Overview
Architettura della diffusioneArchitecture of Syndication