Feedformatierung (JSON)
In diesem 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 richten Sie das Beispiel ein, erstellen es und führen es aus
Vergewissern Sie sich, dass Sie die Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele ausgeführt haben.
Zum Erstellen der C#- oder Visual Basic .NET-Edition der Projektmappe befolgen Sie die unter Erstellen der Windows Communication Foundation-Beispiele aufgeführten Anweisungen.
Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den unter Running the Windows Communication Foundation Samples aufgeführten Anweisungen.
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.
<Installationslaufwerk>:\WF_WCF_Samples
Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<Installationslaufwerk>:\WF_WCF_Samples\WCF\Extensibility\Syndication\JsonFeeds
|