Udostępnij za pośrednictwem


Program formatujący kanału informacyjnego (format JSON)

W przykładzie JsonFeeds pokazano, jak serializować wystąpienie SyndicationFeed klasy w formacie JavaScript Object Notation (JSON) przy użyciu niestandardowego SyndicationFeedFormatter i DataContractJsonSerializer.

Architektura przykładu

Przykład implementuje klasę o nazwie JsonFeedFormatter , która dziedziczy z SyndicationFeedFormatterklasy . Klasa JsonFeedFormatter opiera się na DataContractJsonSerializer klasie do odczytywania i zapisywania danych w formacie JSON. Wewnętrznie formatator używa niestandardowego zestawu typów kontraktów danych o nazwie JsonSyndicationFeed i JsonSyndicationItem do kontrolowania formatu danych JSON generowanych przez serializator. Te szczegóły implementacji są ukryte przed użytkownikiem końcowym, co umożliwia wykonywanie wywołań względem klas standardowych SyndicationFeed i SyndicationItem .

Zapisywanie źródeł danych JSON

Pisanie kanału informacyjnego JSON można wykonać przy użyciu elementu (zaimplementowanego w tym przykładzie) przy DataContractJsonSerializer użyciu JsonFeedFormatter elementu , jak pokazano w poniższym przykładowym kodzie.

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

Odczytywanie źródła danych JSON

Uzyskanie elementu SyndicationFeed ze strumienia danych sformatowanych w formacie JSON można wykonać za pomocą JsonFeedFormatter elementu , jak pokazano w poniższym kodzie.

//Read in the feed using the DataContractJsonSerializer

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

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

SyndicationFeed feedRead = formatter.Feed;

Aby skonfigurować, skompilować i uruchomić przykład

  1. Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

  3. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.