gpt4 book ai didi

c# - 带有 HtmlAgilityPack 的 HTML Linq,或 P​​CL 中的替代方案

转载 作者:IT王子 更新时间:2023-10-29 04:31:30 26 4
gpt4 key购买 nike

我已经在 .NET 4 上编写了一个项目,目前正在让它也能在 Windows Phone 上运行。我正在使用 HtmlAgilityPack,这是一个著名的库,它允许通过 HTML 进行 Linq 查询,并且我只使用它提供的 LoadHtmlLinq 接口(interface)。

将类库从 .NET 4 转换为支持 .NET 4 和 WP8 的 PCL(可移植类库)后,我似乎不能再使用 HtmlAgilityPack 库了。 有没有一种方法可以让 HtmlAgilityPack 在 PCL 项目下正常运行,或者是否有一个具有类似 Linq 界面的可变替代方案可以按预期工作?

编辑:HtmlAgilityPack 提供了 9 个不同的版本,其中没有一个与 PCL 兼容。它们都没有解决引用的依赖关系。对于某些版本,它可能看起来确实如此,但在使用时会抛出一个错误,通常是“无法加载, Unresolved 依赖项”。

EDIT #2 由于很容易错过一个小评论,我将用我想出的解决方案更新这个答案。我提取了基本功能所需的内容并实现了缺失的组件以使一切正常。结果在这里https://github.com/Deathspike/HtmlAgilityPack-PCL

最佳答案

一种选择是将 HTML Agility Pack 源代码移植到 PCL。您可以运行 PCL Compliance Analyzer通过它来了解这将有多难。

或者,使用抽象模式。为您需要的功能(即 LoadHtmlLinq)创建一个可移植接口(interface),然后通过调用 HTML Agility Pack 为每个平台实现该接口(interface)。然后您的可移植代码可以依赖于特定于平台的实现。

有关详细信息,请参阅此博客文章:How to Make Portable Class Libraries Work for You

关于c# - 带有 HtmlAgilityPack 的 HTML Linq,或 P​​CL 中的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15341774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com