Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在PCL中带有HtmlAgilityPack或替代品的HTML Linq_C#_.net_Windows Phone 8_Html Agility Pack_Portable Class Library - Fatal编程技术网

C# 在PCL中带有HtmlAgilityPack或替代品的HTML Linq

C# 在PCL中带有HtmlAgilityPack或替代品的HTML Linq,c#,.net,windows-phone-8,html-agility-pack,portable-class-library,C#,.net,Windows Phone 8,Html Agility Pack,Portable Class Library,我已经在.NET4上写了一个项目,目前正在允许它在WindowsPhone上运行。我正在使用HtmlAgilityPack,这是一个众所周知的库,它允许通过HTML进行Linq查询,我只使用它提供的LoadHtml和Linq接口 在将类库从.NET4转换为PCL(可移植类库)并支持.NET4和WP8之后,我似乎不能再使用HtmlAgilityPack库了是否有一种方法可以让HtmlAgilityPack在PCL项目下正常工作,或者是否有一种具有类似Linq接口的可变替代方案可以按预期工作? 编辑

我已经在.NET4上写了一个项目,目前正在允许它在WindowsPhone上运行。我正在使用HtmlAgilityPack,这是一个众所周知的库,它允许通过HTML进行Linq查询,我只使用它提供的LoadHtml和Linq接口


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

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


编辑#2由于很容易漏掉一条小评论,我将用我提出的解决方案更新此答案。我提取了基本功能所需的内容,并实现了缺失的组件,以使一切正常工作。结果就在这里

你已经问过并回答了你自己的问题,不是吗

HtmlAgilityPack不支持与可移植类库一起使用


充其量,您需要考虑以一种在您使用的平台上工作的方式移植/迁移所需的特定功能。

一个选项是将HTML Agility Pack源代码移植到PCL。你可以浏览一下,了解一下这有多难

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

有关更多信息,请参阅这篇博文:

请看,这是的C#端口。该项目应该非常容易构建为PCL库,因为它或多或少是一个直的C++端口,只使用最基本的.NETFramework类,并有几个更新来提高Cy.< /P>的性能。
虽然我对HtmlParserSharp所做的大部分工作都是为了实现PCL兼容,但HtmlParserSharp作为一个精简的HTML解析器,完全没有理由不能很好地独立工作。该项目包括一个基于
xmlement
构建DOM的示例,但树生成器是一个抽象,因此您可以轻松地将其更改为使用自己的树节点对象。

“我似乎再也不能使用HtmlAgilityPack库了。”-您为什么这么说?您是否收到了特定的错误或消息?HtmlAgilityPack有9个不同的版本,其中没有一个解决引用的依赖关系。对于某些版本,它可能看起来是这样的,但在使用时会抛出一个错误,通常为“无法加载,未解析的依赖项”…请使用此信息更新您的问题。相关信息已更新。我正在寻找基于HtmlAgilityPack构建自定义版本的替代方法。对于那些感兴趣的人来说,它现在就在这里。