Partilhar via


Formatador de Feed (JSON)

O exemplo JsonFeeds mostra como serializar uma instância de uma SyndicationFeed classe em formato JSON (JavaScript Object Notation) usando um SyndicationFeedFormatter personalizado e o DataContractJsonSerializer.

Arquitetura da amostra

O exemplo implementa uma classe chamada JsonFeedFormatter que herda de SyndicationFeedFormatter. A JsonFeedFormatter classe depende do DataContractJsonSerializer para ler e gravar os dados no formato JSON. Internamente, o formatador usa um conjunto personalizado de tipos de contrato de dados nomeados JsonSyndicationFeed e JsonSyndicationItem para controlar o formato dos dados JSON produzidos pelo serializador. Esses detalhes de implementação são ocultos do utilizador final, permitindo que as chamadas sejam feitas nas classes padrão SyndicationFeed e SyndicationItem.

Escrevendo feeds JSON

A gravação de um feed JSON pode ser realizada usando o JsonFeedFormatter (implementado neste exemplo) com o DataContractJsonSerializer conforme mostrado no código de exemplo a seguir.

//Basic feed with sample data
SyndicationFeed feed = new SyndicationFeed("Custom JSON feed", "A Syndication extensibility sample", null);
feed.LastUpdatedTime = DateTime.Now;
feed.Items = from s in new string[] { "hello", "world" }
select new SyndicationItem()
{
    Summary = SyndicationContent.CreatePlaintextContent(s)
};

//Write the feed out to a MemoryStream in JSON format
DataContractJsonSerializer writeSerializer = new DataContractJsonSerializer(typeof(JsonFeedFormatter));
writeSerializer.WriteObject(stream, new JsonFeedFormatter(feed));

Lendo um feed JSON

A obtenção de um SyndicationFeed a partir de um fluxo de dados formatados em JSON pode ser realizada com o JsonFeedFormatter, tal como mostrado no código a seguir.

//Read in the feed using the DataContractJsonSerializer

DataContractJsonSerializer readSerializer = new DataContractJsonSerializer(typeof(JsonFeedFormatter));

JsonFeedFormatter formatter = readSerializer.ReadObject(stream) as JsonFeedFormatter;

SyndicationFeed feedRead = formatter.Feed;

Para configurar, compilar e executar o exemplo

  1. Verifique se você executou o procedimento de instalação do One-Time para os exemplos do Windows Communication Foundation.

  2. Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de máquina única ou cruzada, siga as instruções em Executando os exemplos do Windows Communication Foundation.