新聞訂閱架構
新聞訂閱 API 主要是提供格式中性的程式設計模型,以便在網路上透過各種格式來撰寫新聞訂閱內容。抽象資料模型包含下列類別:
這些類別可緊密地對應至 Atom 1.0 規格中所定義的建構,儘管其中有些名稱不同。
在 Windows Communication Foundation (WCF) 中,新聞訂閱摘要會被模型化為另一種服務作業類型,當中的傳回類型為其中一種 SyndicationFeedFormatter 衍生類別。摘要的擷取會被模型化為要求-回應訊息交換。用戶端會將要求傳送至服務,並由服務回應。要求訊息是在基礎結構通訊協定 (例如,原始 HTTP) 上設置,而回應訊息則包含常用新聞訂閱格式 (RSS 2.0 或 Atom 1.0) 的承載。可實作這些訊息交換的服務,稱為新聞訂閱服務。
新聞訂閱服務合約包含一組可傳回 SyndicationFeedFormatter 類別執行個體的作業。下列範例示範新聞訂閱服務的介面宣告。
新聞訂閱支援會建置在 WCF Web 程式設計模型上,後者會定義 WebHttpBinding 繫結,以搭配 WebHttpBehavior 來提供可用的摘要服務。如需 WCF Web 程式設計模型的詳細資訊,請參閱 WCF Web 程式設計模型概觀。
注意: |
---|
Atom 1.0 規格允許在其任何日期建構中指定小數秒數。序列化和還原序列化 WCF 實作時,將會忽略小數秒數。 |
物件模型
新聞訂閱的物件模型包含下表中的類別群組。
格式化類別:
類別 | 描述 |
---|---|
此類別可將 SyndicationFeed 執行個體序列化為 Atom 1.0 格式。 |
|
此類別可將 SyndicationFeed 衍生類別序列化為 Atom 1.0 格式。 |
|
此類別可將 SyndicationItem 執行個體序列化為 Atom 1.0 格式。 |
|
此類別可將 SyndicationItem 衍生類別序列化為 Atom 1.0 格式。 |
|
此類別可將 SyndicationFeed 執行個體序列化為 RSS 2.0 格式。 |
|
將 SyndicationFeed 衍生類別序列化為 RSS 2.0 格式的類別。 |
|
此類別可將 SyndicationItem 執行個體序列化為 RSS 2.0 格式。 |
|
此類別可將 SyndicationItem 衍生類別序列化為 RSS 2.0 格式。 |
物件模型類別:
類別 | 說明 |
---|---|
SyndicationCategory |
表示新聞訂閱摘要分類的類別。 |
表示新聞訂閱內容的基底類別。 |
|
表示新聞訂閱項目延伸的類別。 |
|
SyndicationElementExtension 物件的集合。 |
|
SyndicationFeed |
表示最上層摘要物件的類別。 |
SyndicationItem |
表示摘要項目的類別。 |
SyndicationLink |
類別,表示新聞訂閱摘要內的連結或項目內的連結。 |
SyndicationPerson |
類別,表示 Atom Person 建構。 |
類別,表示支援的新聞訂閱通訊協定版本。 |
|
類別,表示要對使用者顯示的任何 SyndicationItem 內容。 |
|
列舉,表示支援的不同文字新聞訂閱內容型別。 |
|
類別,表示包含另一個資源 URL 的新聞訂閱內容。 |
|
類別,表示不會在瀏覽器中顯示的新聞訂閱內容。 |
物件模型中的核心資料抽象概念為「摘要」和「項目」,兩者分別對應至 SyndicationFeed 和 SyndicationItem 類別。「摘要」會公開一些摘要層級的中繼資料 (例如,Title、Description 和 Author)、儲存未知延伸的位置,以及組成摘要其餘資訊內容的項目集合。「項目」會提供一些項目層級的中繼資料 (例如,Title、Summary 和 PublicationDate)、儲存未知延伸的位置,以及包含項目其餘資訊內容的內容項目。「摘要」和「項目」的核心抽象概念是由代表 Atom 1.0 和 RSS 規格所提及之一般資料建構的其他類別支援。
「摘要」執行個體中的資訊可以轉換為各種不同的 XML 格式。SyndicationFeedFormatter 類別負責管理與 XML 間的轉換過程。此類別是抽象的,而提供給 Atom 1.0 和 RSS 2.0 的具體實作分別為 Atom10FeedFormatter 和 Rss20FeedFormatter。若要使用衍生的摘要類別,請使用 Atom10FeedFormatter 或 Rss20FeedFormatter,因為它們允許您指定衍生摘要類別。若要使用衍生項目類別,請使用 Atom10ItemFormatter 或 Rss20ItemFormatter,因為它們允許您指定衍生的項目類別。協力廠商可衍生自己的 SyndicationFeedFormatter 實作來支援各種不同的新聞訂閱格式。
擴充性
- 擴充性是新聞訂閱通訊協定的一項重要功能。Atom 1.0 和 RSS 2.0 都可讓您將屬性與項目新增至規格中未定義的新聞訂閱摘要。WCF 新聞訂閱程式設計模型提供兩種使用自訂屬性與延伸的方式:衍生新類別,與鬆散型別的存取。如需詳細資訊,請參閱 新聞訂閱擴充性。