.NET Framework 3.5 の WCF の機能を使って RSS を読む

LINQ to XMLRSSを読むことに挫折しておきながら別の道へ。

これだけのことに果たしてWCFまで使う必要があるのかはなはだ疑問ですが。
.NET Framework 3.5 から、System.ServiceModel.Syndication 名前空間に SyndicationFeed というクラスがあります。
これを使うと、

    XmlReader xr = XmlReader.Create("http://d.hatena.ne.jp/p-nix/rss2");
    SyndicationFeed feed = SyndicationFeed.Load(xr);
    foreach (var val in feed.Items)
    {
        Console.WriteLine("{0}", val.Title.Text);
    }

で指定した RSS のタイトルを表示することができます。LINQ to XML 使ったのより短いですね。
残念ながら SyndicationFeed クラスは RSS2.0 とATOM 1.0 のみ対応です。

ところで、MSDN マガジン 2008年1月号
http://msdn.microsoft.com/msdnmag/issues/08/01/WCFinOrcas/default.aspx?loc=jp
には、

System.Syndication 名前空間の一部です。

という一文があるけど、そのような名前空間は存在しないですね。

Uri feedUri = new Uri("http://blogs.msdn.com/justinjsmith/atom.xml");
SyndicationFeed feed = SyndicationFeed.Load(feedUri);

というコードも、動作しない。Load メソッドは XmlReader しか受け付けない。