Compartir a través de


Extensibilidad de la distribución

La API de distribución está diseñada para proporcionar un modelo de programación neutral frente al formato que permita escribir el contenido distribuido en la conexión en una variedad de formatos. El modelo de datos abstracto está compuesto por las siguientes clases:

Estas clases asignan estrechamente a las estructuras definidas en la especificación Atom 1.0, aunque algunos de los nombres son diferentes.

Una característica clave de los protocolos de distribución es la extensibilidad. Atom 1.0 y RSS 2.0 agregan atributos y elementos a las fuentes de distribución que no están definidas en las especificaciones. El modelo de programación de redifusión de Windows Communication Foundation (WCF) proporciona las siguientes maneras de trabajar con atributos y extensiones personalizados, con el acceso escrito de forma imprecisa y de derivar una nueva clase.

Access escrito de manera imprecisa

Para agregar extensiones derivando una nueva clase, es necesario escribir código adicional. Otra opción obtener acceso a extensiones de manera imprecisa. Todos los tipos definidos en el modelo de datos abstracto de distribución contienen propiedades denominadas AttributeExtensions y ElementExtensions (con una excepción, SyndicationContent tiene una propiedad AttributeExtensions pero ninguna propiedad ElementExtensions). Estas propiedades son colecciones de extensiones no procesadas por los métodos TryParseAttribute y TryParseElement, respectivamente. Puede tener acceso a estas extensiones no procesadas llamando al método SyndicationElementExtensionCollection.ReadElementExtensions de la propiedad ElementExtensions de SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPersony SyndicationCategory. Este conjunto de métodos encuentra todas las extensiones con el nombre y espacio de nombres especificado, las deserializa individualmente en instancias de TExtension y las devuelve como una colección de objetos TExtension.

Derivación de una nueva clase

Puede derivar una nueva clase de cualquiera de las clases del modelo de datos abstracto existentes. Haga esto al implementar una aplicación en la que la mayoría de las fuentes con las que está trabajando tienen una extensión determinada. En este tema, la mayoría de las fuentes con las que el programa trabaja contienen una extensión MyExtension. Para proporcionar una experiencia de programación mejorada, realice los siguientes pasos:

Consulte también