共用方式為


摘要格式器 (JSON)

這個範例會示範如何使用自訂 SyndicationFeedFormatterDataContractJsonSerializer,序列化採用 JavaScript 物件標記法 (JSON) 格式的 SyndicationFeed 類別執行個體。

範例架構

此範例會實作繼承自 SyndicationFeedFormatter 且名為 JsonFeedFormatter 的類別。 JsonFeedFormatter 類別會倚賴 DataContractJsonSerializer 來讀取和寫入採用 JSON 格式的資料。 對內部而言,此格式器會使用名為 JsonSyndicationFeedJsonSyndicationItem 的自訂資料合約類型集合,控制序列化程序所產生的 JSON 格式資料。 這些實作細節已隱藏起來不讓使用者看到,而是允許針對標準 SyndicationFeedSyndicationItem 類別進行呼叫。

寫入 JSON 摘要

搭配 DataContractJsonSerializer 使用 JsonFeedFormatter (已實作於這個範例) 即可寫入 JSON 摘要,如下列範例程式碼所示。

//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 摘要

使用 JsonFeedFormatter,即可從 JSON 格式化的資料流中取得 SyndicationFeed,如下列程式碼所示。

//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 範例的單次安裝程序

  2. 若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例中的指示。

  3. 若要在單一或跨機器的組態中執行本範例,請遵循Running the Windows Communication Foundation Samples中的指示進行。

Bb943484.Important(zh-tw,VS.100).gif 注意:
這些範例可能已安裝在您的電腦上。 請先檢查下列 (預設) 目錄,然後再繼續。

<InstallDrive>:\WF_WCF_Samples

如果此目錄不存在,請移至用於 .NET Framework 4 的 Windows Communication Foundation (WCF) 與 Windows Workflow Foundation (WF) 範例 (英文),以下載所有 Windows Communication Foundation (WCF) 和 WF 範例。 此範例位於下列目錄。

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