2010-04-04 28 views
34

El .Net framework normal contiene HttpUtility.UrlEncode en System.Web Assembly y en Silverlight aparece que se movió a System.Windows.Browser. Pero en Windows Phone 7 (que pensé que era lo mismo que Silverlight) parece que no puedo encontrar una forma adecuada de urlEncode nada. Ninguno de los ensamblados mencionados anteriormente están disponibles en el entorno de Windows Phone 7.HttpUtility.UrlEncode en Windows Phone 7?

Respuesta

58

Silverlight tiene Uri.EscapeUriString y Uri.EscapeDataString que se pueden usar para codificar en URL partes de un URI, como cadenas de consulta y componentes de ruta, etc.

Incluso en el marco de escritorio, nunca debe tomar una dependencia de System.Web.dll solo para HttpUtility, aunque muchos desarrolladores aún lo hacen. Esto es malo por 3 razones.

  • El conjunto es muy grande y su carga puede provocar retrasos significativos en la aplicación.
  • Va a hinchar el conjunto de trabajo de su proceso de alrededor de 20 líneas de código.
  • Hace que su aplicación requiera el marco completo ya que System.Web no se encuentra en el perfil del cliente.

Además de los métodos de escape de URI descrito anteriormente, si necesita HtmlEncode, me acaba de rasgar código de that someone else wrote y soltarlo en su aplicación.

+4

+1, también el enfoque correcto en cualquier aplicación cliente .NET no solo Silverlgiht. HttpUtility se encuentra en System.Web.dll, que está diseñado para entregar el servidor al final de la Web. – AnthonyWJones

+0

De hecho, acabo de escribir una aplicación de vista/búsqueda de Twitter que usa esto para que funcionen. – RoguePlanetoid

+0

Con respecto a HtmlEncode/HtmlDecode, no solo está en System.Web de .NET Framework completo: .NET 4 Client Profile tiene System.Net.WebUtility, Silverlight tiene System.Windows.Browser.HttpUtility y Windows Phone tiene System.Net.HttpUtility –

25

HttpUtility.UrlEncode y HttpUtility.UrlDecode están en Windows Phone 7, acaban de moverse.

Búscalos en System.Net.HttpUtility en el ensamblado System.Windows.dll.

+1

ahora es System.Net.WebUtility.UrlEncode – waza123

0

Ahora está resuelto. Puede utilizar:

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