Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Syndication API está diseñado para proporcionar un modelo de programación neutro en formato que permite escribir contenido sindicado en la conexión en una variedad de formatos. El modelo de datos abstracto consta de las siguientes clases:
Estas clases se asignan estrechamente a las construcciones 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. Tanto Atom 1.0 como RSS 2.0, agregan atributos y elementos a fuentes de distribución que no están definidas en las especificaciones. El modelo de programación de distribución de Windows Communication Foundation (WCF) proporciona las siguientes formas de trabajar con atributos y extensiones personalizados, acceso de tipo flexible y derivación de una nueva clase.
Acceso con tipo flexible
La adición de extensiones mediante la derivación de una nueva clase requiere escribir código adicional. Otra opción es acceder a las extensiones de forma flexible. Todos los tipos definidos en el modelo de datos abstractos de distribución contienen propiedades denominadas AttributeExtensions y ElementExtensions (con una excepción, SyndicationContent tiene una AttributeExtensions propiedad pero ninguna ElementExtensions propiedad). Estas propiedades son colecciones de extensiones no procesadas por los TryParseAttribute métodos y TryParseElement respectivamente. Puede acceder a estas extensiones sin procesar llamando a SyndicationElementExtensionCollection.ReadElementExtensions en la ElementExtensions propiedad de SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPersony SyndicationCategory. Este conjunto de métodos busca todas las extensiones con el nombre y el espacio de nombres especificados, deserializalas individualmente en instancias de TExtension y las devuelve como una colección de TExtension objetos.
Derivar una nueva clase
Puede derivar una nueva clase de cualquiera de las clases de modelo de datos abstractas existentes. Haga esto al implementar una aplicación en la que la mayoría de las fuentes con las que trabaja tienen una extensión determinada. En este tema, la mayoría de las fuentes con las que funciona el programa contienen una MyExtension extensión. Para proporcionar una experiencia de programación mejorada, siga estos pasos:
Cree una clase para contener los datos de extensión. En este caso, cree una clase denominada MyExtension.
Derive una clase denominada MyExtensionItem de SyndicationItem para exponer una propiedad de tipo MyExtension con fines de programación.
Invalide TryParseElement(XmlReader, String) en la clase MyExtensionItem para crear una instancia nueva de MyExtension cuando se lee una myExtension.
Invalide WriteElementExtensions(XmlWriter, String) en la clase MyExtensionItem para escribir el contenido de la propiedad MyExtension en un escritor XML.
Derive una clase denominada MyExtensionFeed de SyndicationFeed.
Invalide CreateItem() en la clase MyExtensionFeed para crear una instancia de MyExtensionItem en lugar del valor predeterminado SyndicationItem. Una serie de métodos se definen en SyndicationFeed y SyndicationItem que pueden crear SyndicationLinkobjetos , SyndicationCategoryy SyndicationPerson (por ejemplo, CreateLink(), CreateCategory()y CreatePerson()). Todos los cuales se pueden invalidar para crear una clase derivada personalizada.