Compartir a través de


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.