Partilhar via


Extensibilidade de Sindicação

A API de Syndication foi concebida para fornecer um modelo de programação neutro em termos de formato que permite que o conteúdo sindicalizado seja distribuído na rede em uma variedade de formatos. O modelo de dados abstrato consiste nas seguintes classes:

Essas classes correspondem de forma próxima às construções definidas na especificação Atom 1.0, embora alguns dos nomes sejam diferentes.

Uma característica fundamental dos protocolos de distribuição é a extensibilidade. Tanto o Atom 1.0 quanto o RSS 2.0 adicionam atributos e elementos aos feeds de distribuição que não estão definidos nas especificações. O modelo de programação de distribuição do Windows Communication Foundation (WCF) fornece as seguintes maneiras de trabalhar com atributos e extensões personalizados, acesso de tipo flexível e derivação de uma nova classe.

Acesso vagamente tipado

Adicionar extensões derivando uma nova classe requer escrever código adicional. Outra opção é acessar extensões de forma vaga. Todos os tipos definidos no modelo de dados abstrato de sindicação contêm propriedades nomeadas AttributeExtensions e ElementExtensions (com uma exceção, SyndicationContent tem uma propriedade AttributeExtensions, mas não tem uma propriedade ElementExtensions). Essas propriedades são coleções de extensões que não são processadas pelos métodos TryParseAttribute e TryParseElement respectivamente. Você pode acessar essas extensões não processadas chamando SyndicationElementExtensionCollection.ReadElementExtensions na ElementExtensions propriedade 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 as retorna como uma coleção de TExtension objetos.

Derivando uma nova classe

Você pode derivar uma nova classe de qualquer uma das classes de modelo de dados abstratos 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 trabalha contém uma MyExtension extensão. Para fornecer uma experiência de programação aprimorada, execute as seguintes etapas:

Ver também