2010-04-04 77 views
34

常规.Net框架包含System.Web程序集中的HttpUtility.UrlEncode,并且在Silverlight中它看起来被移到了System.Windows.Browser。但在Windows Phone 7中(我认为它与Silverlight一样),我似乎无法找到正确的方式来UrlEncode任何东西。在Windows Phone 7环境中,前面提到的程序集都不可用。Windows Phone 7中的HttpUtility.UrlEncode?

回答

58

Silverlight的Uri.EscapeUriStringUri.EscapeDataString可用于对URI的部分(如查询字符串和路径组件等)进行URL编码。

即使在桌面框架中,您也不应该仅仅依赖于System.Web.dll来处理HttpUtility,尽管许多开发人员仍然这样做。这有三个原因是不好的。

  • 该程序集非常大并且加载它会给您的应用程序增加显着的延迟。
  • 您将为您的流程的工作集放大约20行代码。
  • 它使您的应用程序需要完整的框架,因为System.Web不在客户端配置文件中。

除了如上所述,如果你需要的HTMLEncode,我只是撕裂代码关闭that someone else wrote并在您的应用程序拖放到URI转义的方法。

+4

+1,也是任何.NET客户端应用程序中的正确方法,而不仅仅是Silverlgiht。 HttpUtility位于System.Web.dll中,旨在传递Web的服务器端。 – AnthonyWJones 2010-04-04 12:26:59

+0

的确,我只是写了一个twitter视图/搜索应用程序,它使用它,所以他们的工作。 – RoguePlanetoid 2010-04-07 12:05:02

+0

关于HtmlEncode/HtmlDecode,它不仅在完整.NET框架的System.Web中:.NET 4客户端配置文件具有System.Net.WebUtility,Silverlight具有System.Windows.Browser.HttpUtility,Windows Phone具有System.Net.HttpUtility – 2014-03-20 22:31:30

25

HttpUtility.UrlEncodeHttpUtility.UrlDecode在Windows Phone 7中,他们刚刚移动。

在程序集System.Windows.dll中的System.Net.HttpUtility中查找它们。

+1

它现在System.Net.WebUtility.UrlEncode – waza123 2016-03-08 01:25:20

0

现在解决了。您可以使用:

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