Freigeben über


Feed-Formatierer (JSON)

Das JsonFeeds-Beispiel zeigt, wie Sie eine Instanz einer SyndicationFeed Klasse im JavaScript Object Notation (JSON)-Format mithilfe eines benutzerdefinierten SyndicationFeedFormatter und des DataContractJsonSerializerJSON-Formats serialisieren.

Architektur des Beispiels

Im Beispiel wird eine Klasse mit dem Namen JsonFeedFormatter definiert, die von SyndicationFeedFormatter erbt. Die JsonFeedFormatter Klasse verwendet DataContractJsonSerializer, um die Daten im JSON-Format zu lesen und zu schreiben. Intern verwendet der Formatierer einen benutzerdefinierten Satz von Datentypen namens JsonSyndicationFeed und JsonSyndicationItem, um das Format der vom Serialisierer erstellten JSON-Daten zu steuern. Diese Implementierungsdetails werden vom Endbenutzer ausgeblendet, sodass Aufrufe für die Standard SyndicationFeed - und SyndicationItem Klassen ausgeführt werden können.

Schreiben von JSON-Feeds

Ein JSON-Feed kann geschrieben werden mithilfe von JsonFeedFormatter, wie in diesem Beispiel implementiert, und DataContractJsonSerializer, wie im folgenden Beispielcode gezeigt.

//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 von einem Datenstrom mit JSON-formatierten Daten kann mit JsonFeedFormatter erfolgen, wie im folgenden Code gezeigt.

//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 das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.

  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.