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