Вопрос по c#, windows-phone-7 – HTMLAgilityPack Expression не может содержать лямбда-выражения

0

Я хочу, чтобы InnerText div назвал album_notes. Как и во многих других местах, мой код выглядит следующим образом:

public void Album_Notes(HtmlAgilityPack.HtmlDocument bandHTML)
{
        this.lblNotes.Text = bandHTML.DocumentNode.Descendants("div").First(x => x.Id == "album_notes").InnerHtml;

TextBlock, lblNotes, заканчивается без текста в результате. Если я открою QuickWatch в режиме отладки, я получу следующий результат:

Expression cannot contain lambda expressions

хотя я использовал точно такой же синтаксис, по крайней мере, 10 раз в другом месте того же приложения. Странно то, что он на самом деле не выдает ошибку или что-то еще, он просто заполняет TextBlock пустой строкой.

Что не так с моим кодом?

Ваш Ответ

1   ответ
1

Expression cannot contain lambda expressions сообщение приходит не из HTMLAgilityPack, а из функции QuickWatch. По существу, лямбда-выражение представляет собой просто синтаксический сахар: при компиляции лямбда-выражение преобразуется в «реальное». функция. Поскольку во время компиляции что-то происходит, вы не можете создать новую лямбду во время выполнения (то есть в окне QuickWatch).

Теперь вопрос: почемуlblNotes.Text пусто? К сожалению, я не могу знать, не видя HTML-код. Хотя, если нет ошибки, это означает, что & quot; album_notes & quot; div был найден (иначе у вас будет исключение нулевой ссылки). СледовательноInnerHtml свойство, вероятно, пусто.

Вы можете проверить это, немного переписав свой код:

public void Album_Notes(HtmlAgilityPack.HtmlDocument bandHTML)
{
    var div = bandHTML.DocumentNode.Descendants("div").First(x => x.Id == "album_notes");
    this.lblNotes.Text = div.InnerHtml;
}

Таким образом, если вы поставите точку останова на последней строке, вы можете проверить значениеdiv а такжеdiv.InnerHtml в окне быстрого просмотра.

Хотя вы не дали мне прямого ответа, ваша информация помогла мне в отладке, особенно в том, что касается лямбда-преобразования. Проблема заключалась в том, что я получил неправильный тег HTML с сайта. Я хотел текст, где мой комментарий здесь:pastebin.ca/2144804 Ali Almohsen

Похожие вопросы