Compartilhar via


Extensibilidade de sindicalização

A API de sindicalização foi projetada para fornecer um modelo de programação neutro em formato que permite que o conteúdo sindicalizado seja gravado na transmissão em uma variedade de formatos. O modelo de dados abstrato consiste nas seguintes classes:

Essas classes mapeiam de perto os constructos definidos na especificação Atom 1.0, embora alguns dos nomes sejam diferentes.

Um dos principais recursos dos protocolos de sindicalização é a extensibilidade. Atom 1.0 e RSS 2.0 adicionam atributos e elementos a feeds de sindicalização que não estão definidos nas especificações. O modelo de programação de sindicalização do Windows Communication Foundation (WCF) fornece as seguintes maneiras de trabalhar com atributos e extensões personalizados, acesso com tipo flexível e derivar uma nova classe.

Acesso com tipo flexível

Adicionar extensões derivando uma nova classe requer a gravação de código adicional. Outra opção é acessar extensões usando tipo flexível. Todos os tipos definidos no modelo de dados abstrato de sindicalização contêm propriedades nomeadas AttributeExtensions e ElementExtensions (com uma exceção, SyndicationContent tem uma propriedade AttributeExtensions, mas nenhuma propriedade ElementExtensions). Essas propriedades são coleções de extensões não processadas pelos métodos TryParseAttribute e TryParseElement, respectivamente. Você pode acessar essas extensões não processadas chamando SyndicationElementExtensionCollection.ReadElementExtensions na propriedade ElementExtensions de SyndicationFeed, SyndicationItem, SyndicationLink, SyndicationPerson e SyndicationCategory. Esse conjunto de métodos localiza todas as extensões com o nome e o namespace especificados, desserializa-as individualmente em instâncias de TExtension e retorna-as como uma coleção de objetos TExtension.

Criando uma nova classe

Você pode derivar uma nova classe de qualquer uma das classes de modelo de dados abstrato existentes. Faça isso ao implementar um aplicativo no qual a maioria dos feeds com os quais você está trabalhando tem uma extensão específica. Neste tópico, a maioria dos feeds com os quais o programa funciona contêm uma extensão MyExtension. Para proporcionar uma experiência de programação aprimorada, execute as seguintes etapas:

Confira também