Roe*_*den 22 .net c# html-agility-pack portable-class-library windows-phone-8
我已经在.NET 4上编写了一个项目,目前我正在允许它在Windows Phone上运行.我正在使用HtmlAgilityPack,一个众所周知的库,允许Linq查询HTML,并且只使用它提供的LoadHtml和Linq接口.
将类库从.NET 4转换为支持.NET 4和WP8的PCL(可移植类库)后,我似乎无法再使用HtmlAgilityPack库了.有没有办法允许HtmlAgilityPack在PCL项目下正常运行,或者是否有一个类似的Linq接口的可变替代方案可以按预期工作?
编辑:HtmlAgilityPack提供9个不同的版本,其中没有一个与PCL兼容.它们都没有解析引用的依赖关系.对于某些版本,它可能看起来确实如此,但在使用时会出现错误,通常是"无法加载,未解析的依赖项".
编辑#2由于很容易错过一个小评论,我会用我提出的解决方案更新这个答案.我提取了基本功能所需的内容,并实现了缺少的组件以使一切正常.结果在这里https://github.com/Deathspike/HtmlAgilityPack-PCL
一种选择是将HTML Agility Pack源代码移植到PCL.您可以在其上运行PCL Compliance Analyzer,以了解这将是多么困难.
或者,使用抽象模式.为您需要的功能(即LoadHtml和Linq)创建一个可移植的界面,然后通过调用HTML Agility Pack为每个平台实现该界面.然后,您的可移植代码可以依赖于特定于平台的实现.
有关更多信息,请参阅此博客文章:如何使便携式类库为您工作
你已经提出并回答了你自己的问题——不是吗?
HtmlAgilityPack 不支持与可移植类库一起使用。
最好的情况是,您需要考虑以适用于您正在使用的平台的方式移植/迁移您所需的特定功能。
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |