Feedformatierung (JSON)

Im JsonFeeds-Beispiel wird veranschaulicht, wie eine Instanz einer SyndicationFeed-Klasse im JSON-Format (JavaScript Object Notation) unter Verwendung eines benutzerdefinierten SyndicationFeedFormatter und des DataContractJsonSerializer serialisiert wird.

Architektur des Beispiels

Das Beispiel implementiert eine Klasse namens JsonFeedFormatter, die von SyndicationFeedFormatter erbt. Die JsonFeedFormatter-Klasse verwendet den DataContractJsonSerializer, um die Daten in JSON-Format zu lesen und zu schreiben. Intern verwendet der Formatierer einen benutzerdefinierten Satz von Datenvertragstypen namens JsonSyndicationFeed und JsonSyndicationItem, um das Format der JSON-Daten zu überwachen, die vom Serialisierungsprogramm erstellt wurden. Diese Implementierungsdetails sind für den Endbenutzer verborgen, sodass Aufrufe mit den SyndicationFeed- und SyndicationItem-Standardklassen vorgenommen werden können.

Schreiben von JSON-Feeds

Ein JSON-Feed kann mithilfe des JsonFeedFormatter (implementiert in diesem Beispiel) und des DataContractJsonSerializer geschrieben werden, wie im folgenden Beispielcode dargestellt.

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

Lesen eines JSON-Feeds

Das Abrufen eines SyndicationFeed aus einem Stream von JSON-formatierten Daten kann mithilfe des JsonFeedFormatter erfolgen, wie im folgenden Code dargestellt.

//Read in the feed using the DataContractJsonSerializer

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

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

SyndicationFeed feedRead = formatter.Feed;

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie die Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.

  3. Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.