ちょっと前に Html Agility Pack の使い方を調べていました。
実はこのとき、ユニバーサルなプロジェクトでテストを書いてストアアプリ側で実行していたのですが、いざ Windows Phone プロジェクトで実行しようとしたところ、NullReferenceException で落ちてしまいました。
どうやら、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
やはり、テストは両方のプロジェクトで実行しておかないとダメですね。
これを機にストアアプリ側にしか置いていないテストをリンクしておこうと思います。