2010-04-04 17 views
34

Il framework .Net regolare contiene HttpUtility.UrlEncode nell'assembly System.Web e in Silverlight sembra essere stato spostato in System.Windows.Browser. Ma in Windows Phone 7 (che pensavo fosse lo stesso di Silverlight) non riesco a trovare un modo corretto per UrlEncode. Nessuno degli assembly menzionati in precedenza è disponibile nell'ambiente Windows Phone 7.HttpUtility.UrlEncode in Windows Phone 7?

risposta

58

Silverlight ha Uri.EscapeUriString e Uri.EscapeDataString che può essere utilizzato per codificare URL porzioni di un URI come stringhe di query e componenti del percorso e così via.

Anche nel framework desktop, non si dovrebbe mai fare affidamento su System.Web.dll solo per HttpUtility, anche se molti sviluppatori lo fanno ancora. Questo è male per 3 motivi.

  • L'assemblaggio è molto grande e il caricamento può aggiungere ritardi significativi all'applicazione.
  • Gonfiando il set di lavoro del processo per circa 20 righe di codice.
  • Fa in modo che l'applicazione richieda il framework completo poiché System.Web non si trova nel profilo client.

Oltre ai metodi di fuga Uri descritti sopra, se avete bisogno di HtmlEncode, vorrei solo strappare il codice fuori that someone else wrote e rilasciarlo nella vostra applicazione.

+4

+1, anche l'approccio corretto in qualsiasi applicazione client .NET non solo Silverlgiht. HttpUtility è in System.Web.dll che è progettato per fornire il lato server del Web. – AnthonyWJones

+0

In effetti ho appena scritto un'app di visualizzazione/ricerca su Twitter che utilizza questo metodo per funzionare. – RoguePlanetoid

+0

Per quanto riguarda HtmlEncode/HtmlDecode, non è solo su System.Web del framework .NET completo: .NET 4 Client Profile ha System.Net.WebUtility, Silverlight ha System.Windows.Browser.HttpUtility e Windows Phone ha System.Net.HttpUtility –

25

HttpUtility.UrlEncode e HttpUtility.UrlDecode sono in Windows Phone 7, si sono appena spostati.

Cercare in System.Net.HttpUtility nell'assembly System.Windows.dll.

+1

è ora System.Net.WebUtility.UrlEncode – waza123

0

Ora è risolto. È possibile utilizzare:

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