HttpUtility.UrlEncode в Windows Phone 7?

Обычная .Net-структура содержит HttpUtility.UrlEncode в сборке System.Web, а в Silverlight она перемещается в System.Windows.Browser. Но в Windows Phone 7 (который, как я думал, был таким же, как Silverlight), я не могу найти подходящий способ для UrlEncode. Ни одна из ранее упомянутых сборок не доступна в среде Windows Phone 7.

Ответ 1

Silverlight имеет Uri.EscapeUriString и Uri.EscapeDataString, которые могут использоваться для URL-кодирования частей URI, таких как строки запроса и компоненты пути и т.д.

Даже в среде рабочего стола вы никогда не должны зависеть от System.Web.dll только для HttpUtility, хотя многие разработчики все еще это делают. Это плохо по 3 причинам.

  • Сборка очень большая, и загрузка может привести к значительным задержкам для вашего приложения.
  • Вы будете раздувать рабочий набор вашего процесса примерно на 20 строк кода.
  • Это делает ваше приложение обязательным для полной структуры, так как System.Web не входит в профиль клиента.

В дополнение к описанным выше методам экранирования Uri, если вам нужен HtmlEncode, я бы просто разорвал код который написал кто-то другой и отбросил его в вашем приложении.

Ответ 2

HttpUtility.UrlEncode и HttpUtility.UrlDecode находятся в Windows Phone 7, они просто переместились.

Ищите их в System.Net.HttpUtility в сборке System.Windows.dll.

Ответ 3

Теперь он решен. Вы можете использовать:

Windows.Data.Html.HtmlUtilities.ConvertToText("your_html_string");