次の方法で共有


フィード フォーマッタ (JSON)

JsonFeeds サンプルは、カスタム SyndicationFeedSyndicationFeedFormatterを使用して、DataContractJsonSerializer クラスのインスタンスを JavaScript Object Notation (JSON) 形式でシリアル化する方法を示しています。

サンプルのアーキテクチャ

このサンプルでは、JsonFeedFormatterから継承する SyndicationFeedFormatter という名前のクラスを実装します。 JsonFeedFormatter クラスは、JSON 形式でデータを読み書きするDataContractJsonSerializerに依存します。 内部的には、フォーマッタは、 JsonSyndicationFeedJsonSyndicationItem という名前のカスタム データ コントラクト型のセットを使用して、シリアライザーによって生成される JSON データの形式を制御します。 これらの実装の詳細はエンド ユーザーには表示されず、標準の SyndicationFeed クラスと SyndicationItem クラスに対して呼び出しを実行できます。

JSON フィードの書き込み

JSON フィードの記述は、次のサンプル コードに示すように、JsonFeedFormatterDataContractJsonSerializer (このサンプルで実装されています) を使用して実現できます。

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

JSON フィードの読み取り

次のコードに示すように、JSON 形式のデータストリームから SyndicationFeed を取得するには、 JsonFeedFormatter を使用します。

//Read in the feed using the DataContractJsonSerializer

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

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

SyndicationFeed feedRead = formatter.Feed;

サンプルを設定、ビルド、実行するには

  1. Windows Communication Foundation サンプル One-Time セットアップ手順を実行していることを確認します。

  2. ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. 単一または複数のコンピューター間の構成でサンプルを実行するには、「Windows Communication Foundation Samplesの実行」の手順に従います。