Feedformatierung (JSON)Feed Formatter (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.This sample shows how to serialize an instance of a SyndicationFeed class in JavaScript Object Notation (JSON) format by using a custom SyndicationFeedFormatter and the DataContractJsonSerializer.

Architektur des BeispielsArchitecture of the Sample

Das Beispiel implementiert eine Klasse namens JsonFeedFormatter, die von SyndicationFeedFormatter erbt.The sample implements a class named JsonFeedFormatter that inherits from SyndicationFeedFormatter. Die JsonFeedFormatter-Klasse verwendet den DataContractJsonSerializer, um die Daten in JSON-Format zu lesen und zu schreiben.The JsonFeedFormatter class relies on the DataContractJsonSerializer to read and write the data in JSON format. 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.Internally, the formatter uses a custom set of data contract types named JsonSyndicationFeed and JsonSyndicationItem to control the format of the JSON data produced by the serializer. Diese Implementierungsdetails sind für den Endbenutzer verborgen, sodass Aufrufe mit den SyndicationFeed- und SyndicationItem-Standardklassen vorgenommen werden können.These implementation details are hidden from the end user, allowing calls to be made against the standard SyndicationFeed and SyndicationItem classes.

Schreiben von JSON-FeedsWriting JSON feeds

Ein JSON-Feed kann mithilfe des JsonFeedFormatter (implementiert in diesem Beispiel) und des DataContractJsonSerializer geschrieben werden, wie im folgenden Beispielcode dargestellt.Writing a JSON feed can be accomplished by using the JsonFeedFormatter (implemented in this sample) with the DataContractJsonSerializer as shown in the following sample code.

//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-FeedsReading a JSON feed

Das Abrufen eines SyndicationFeed aus einem Stream von JSON-formatierten Daten kann mithilfe des JsonFeedFormatter erfolgen, wie im folgenden Code dargestellt.Obtaining a SyndicationFeed from a stream of JSON-formatted data can be accomplished with the JsonFeedFormatter as show in the following code.

//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ührenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  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.To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. Um das Beispiel in einer einzelnen oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-machine configuration, follow the instructions in Running the Windows Communication Foundation Samples.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\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)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Extensibility\Syndication\JsonFeeds

Siehe auchSee Also