HTMLAgilityPack QuerySelectorAll wirft Ausnahme, möglicherweise Fizzler dll Version nicht übereinstimmen?

c# fizzler html-agility-pack

Frage

Wir haben kürzlich eine Reihe von DLLs in unserem Projekt aktualisiert, einschließlich HtmlAgilityPack auf ihre neuesten Versionen. Dies hat bewirkt, dass der folgende Code, der bereits funktioniert hat, Fehler in der ersten Zeile wirft.

List<HtmlNode> foundNodes = document.QuerySelectorAll(".divider").ToList();

foreach(HtmlNode node in foundNodes){
    doWhatever(node);
}

Methode nicht gefunden: 'System.Collections.Generic.IEnumerable`1 HtmlAgilityPack.HtmlNode.Descendants ()'.

Die letzte Zeile der Stack-Trace ist:

" bei Fizzler.Systems.HtmlAgilityPack.HtmlNodeOps.b__71 (HtmlNode n) "

Der QuerySelectorAll gibt einen IEnumerable von HtmlNode zurück, aber ich kann nicht mehr in der Lage sein, ihn in eine Liste umzuwandeln. Ich würde eine Vermutung riskieren, dass es eine verwandte DLL mit einer inkompatiblen Version gibt (fizzler?), Die die Descendants Methode vermisst? Die NuGet-Seite für HtmlAgilityPack zeigt jedoch keine Abhängigkeiten und die fizzler-Version, die ich verwende, ist 1.0.0, was ich für richtig halte.

Expertenantwort

Haftungsausschluss : Ich bin der Besitzer des Projekts Html Agility Pack

Die Version 1.5.0 wurde veröffentlicht, und dieses Problem wurde in der Version 1.5.0-Beta5 behoben.

Dies wurde verursacht, weil zu einer Methode in Version 1.4.9.5 ein Standardparameter hinzugefügt wurde

Da die Bibliothek stark benannt ist, konnte Fizzler diese Methode nicht mehr finden.


Beliebte Antwort

Es passiert derselbe Fehler bei mir, nachdem ich das nugget-Paket HtmlAgilityPack aktualisiert habe.

Ich habe vorerst das Downgrade von 1.4.9.4 auf 1.4.9 beschlossen.

Lassen Sie uns die nächsten Versionen dieses Pakets sehen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum