Formateador de fuente (JSON)

En el ejemplo JsonFeeds se muestra cómo serializar una instancia de una SyndicationFeed clase en formato de notación de objetos JavaScript (JSON) mediante un personalizado SyndicationFeedFormatter y DataContractJsonSerializer.

Arquitectura del ejemplo

El ejemplo implementa una clase denominada JsonFeedFormatter que hereda de SyndicationFeedFormatter. La clase JsonFeedFormatter se basa en DataContractJsonSerializer para leer y escribir los datos en formato JSON. Internamente, el formateador usa un conjunto personalizado de tipos de contrato de datos denominados JsonSyndicationFeed y JsonSyndicationItem para controlar el formato de los datos JSON generados por el serializador. Estos detalles de implementación se ocultan al usuario final, lo que permite realizar llamadas a las clases estándar SyndicationFeed y SyndicationItem.

Escritura de flujos JSON

Escribir una fuente de JSON se puede lograr utilizando JsonFeedFormatter (se implementa en este ejemplo) con DataContractJsonSerializer como se muestra en el código muestra siguiente.

//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));

Lectura de una fuente JSON

La obtención de un SyndicationFeed a partir de una secuencia de datos con formato JSON se puede realizar con el JsonFeedFormatter, como se muestra en el código siguiente.

//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 y ejecutar el ejemplo

  1. Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

  2. Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.

  3. Para ejecutar el ejemplo en una configuración de una máquina única o entre máquinas, siga las instrucciones de Ejecución de los ejemplos de Windows Communication Foundation.