HTML Linq с HtmlAgilityPack, или альтернативным, в PCL

.net c# html-agility-pack portable-class-library windows-phone-8

Вопрос

Я написал проект на .NET 4, и в настоящее время я нахожусь в состоянии разрешить его запуск на Windows Phone. Я использую HtmlAgilityPack, хорошо известную библиотеку, которая позволяет запросы Linq по HTML, и я использую только интерфейсы LoadHtml и Linq, которые он предоставляет.

Преобразуя библиотеки классов из .NET 4 в PCL (Portable Class Library) с поддержкой .NET 4 и WP8, я больше не могу использовать библиотеку HtmlAgilityPack. Есть ли способ позволить HtmlAgilityPack правильно функционировать в рамках проекта PCL или есть альтернатива с аналогичным интерфейсом Linq, который работает по назначению?

EDIT : HtmlAgilityPack предоставляет 9 различных версий, ни один из которых не совместим с PCL. Ни один из них не разрешает зависимости от ссылок. Для некоторых версий может показаться, что это происходит, но при использовании ошибка будет вызываться с помощью обычной «не может загружать, неразрешенные зависимости».

EDIT # 2 Так как легко пропустить небольшой комментарий, я обновлю этот ответ с решением, которое я придумал. Я извлек то, что было необходимо для базовых функций, и реализовал недостающие компоненты, чтобы все работало. В результате здесь https://github.com/Deathspike/HtmlAgilityPack-PCL

Принятый ответ

Вы спросили и ответили на свой вопрос, не так ли?

HtmlAgilityPack не поддерживает использование портативных классов классов.

В лучшем случае вам нужно будет взглянуть на перенос / миграцию требуемых вами функций, которые будут работать на платформах, которые вы используете.


Популярные ответы

Один из вариантов заключается в переносе исходного кода HTML Agility Pack на PCL. Вы можете запустить анализатор соответствия PCL, чтобы понять, насколько это будет сложно.

В качестве альтернативы используйте рисунок абстракции. Создайте портативный интерфейс для необходимой вам функциональности (например, LoadHtml и Linq ), а затем реализуйте этот интерфейс для каждой платформы, вызывая в HTML Agility Pack. Тогда ваш переносимый код может зависеть от реализации конкретной платформы.

Для получения дополнительной информации см. Это сообщение в блоге: Как сделать портативные библиотеки классов для вас



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему