Подтвердить что ты не робот

С# HTMLDecode без System.Web?

Я знаю, что существуют различные методы в пространстве имен System.Web для декодирования html-объектов (например, "%20" для пробела). Однако я создаю приложение Winforms, но мне нужно иметь дело с html-закодированными строками. В основном у меня есть XML файл iTunes Library и вам нужно расшифровать URL-адреса там, чтобы проверить файлы.

Возможно ли это без пространства имен System.Web?

4b9b3361

Ответ 1

Разработчики, которым необходимо использовать System.Web.HttpUtility в своих клиентских приложениях и должны были ссылаться на System.Web.dll и, следовательно, на целевые NET4 full (System.Web.dll в полном объеме), теперь можно настроить таргетинг на NET4 Client Профиль с помощью нового класса System.Net.WebUtility, который находится в System.dll(System.dll находится в профиле клиента NET4). System.Net.WebUtility включает HtmlEncode и HtmlDecode. Кодировка URL может быть выполнено с использованием класса System.Uri(также в System.dll).

Из http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx

Ответ 2

Просто потому, что вы пишете приложение Windows Forms, это не мешает вам использовать System.Web. Просто добавьте ссылку на System.Web.dll.

Ответ 3

Вы можете использовать System.Net.WebUtility.HtmlDecode:

Преобразует строку, которая была закодирована в HTML для передачи HTTP в декодированную строку.

Ответ 4

Смотрите эту статью, если вам все еще интересно, как это сделать без System.Web. Он предлагает решение для декодирования URI (это действительно то, что вы декодируете, а не объекты HTML, которые похожи на "& emdash;" )

Ответ 5

Чтобы использовать методы, которые находятся в платформе .NET, вы должны использовать пространство имен System.Web для получения метода HtmlDecode.

Да, вы могли бы написать свой собственный метод, чтобы сделать это, но это не будет иметь большого смысла.

Просто добавьте ссылку на system.web.

Ответ 6

mybe это может помочь в winforms:

System.Uri.EscapeUriString(plainText);

Ответ 7

Вы можете использовать HttpUtility.UrlDecode или HttpUtility.HtmlDecode