The regular .Net framework contains HttpUtility.UrlEncode in the System.Web Assembly and in Silverlight it appears it was moved to System.Windows.Browser. But in Windows Phone 7 (which I thought was the same as Silverlight) I can't seem to find a proper way to UrlEncode anything. Neither of the previously mentioned assemblies are available in the Windows Phone 7 environment.
+11
A:
Silverlight has the Uri.EscapeUriString and Uri.EscapeDataString which can be used to URL-encode portions of a URI such as query strings and path components and such.
Even in the desktop framework, you should never take a dependency on System.Web.dll just for HttpUtility, although many developers still do it. This is bad for 3 reasons.
- The assembly is very large and loading it can add significant delays to your application.
- You will be bloating the working set of your process for about 20 lines of code.
- It makes your application require the full framework since System.Web is not in the client profile.
In addition to the Uri escaping methods described above, if you need HtmlEncode, I would just rip code off that someone else wrote and drop it in your application.
Josh Einstein
2010-04-04 02:42:57
+1, also the correct approach in any .NET client application not just Silverlgiht. HttpUtility is in the System.Web.dll which is designed to deliver the Server end of the Web.
AnthonyWJones
2010-04-04 12:26:59
Indeed I just wrote a twitter view / search app which uses this so they do work.
RoguePlanetoid
2010-04-07 12:05:02
+1
A:
HttpUtility.UrlEncode and HttpUtility.UrlDecode are in Windows Phone 7 Serries, they just got moved.
Look for them in System.Net.HttpUtility in assembly System.Windows.dll
John Melville
2010-05-28 06:16:00