kazuakix の日記

Windows Phone とか好きです

Windows Phone で Html Agility Pack を使ってみる

ちょっと前に Html Agility Pack の使い方を調べていました。

実はこのとき、ユニバーサルなプロジェクトでテストを書いてストアアプリ側で実行していたのですが、いざ Windows Phone プロジェクトで実行しようとしたところ、NullReferenceException で落ちてしまいました。

f:id:kazuakix:20150215184742j:plain,w500

どうやら、Windows Phone プロジェクトのときだけ HtmlDocument.Load() を呼ぶところで落ちているようです。

using (var stream = await sampleFile.OpenStreamForReadAsync())
{
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.Load(stream);


とりあえず HtmlDocument.LoadHtml() なら落ちないみたいなので、Windows Phone のときだけ逃げることにしました。

using (var stream = await sampleFile.OpenStreamForReadAsync())
{
    var doc = new HtmlAgilityPack.HtmlDocument();
#if WINDOWS_PHONE_APP
    using (var reader = new StreamReader(stream))
    {
        doc.LoadHtml(await reader.ReadToEndAsync());
    }
#else
    doc.Load(stream);
#endif


やはり、テストは両方のプロジェクトで実行しておかないとダメですね。

これを機にストアアプリ側にしか置いていないテストをリンクしておこうと思います。