2009-09-02 9 views
20

estoy tratando de codificar una URL utilizando el método HttpUtility.UrlEncode(), ¿por qué me¿Por qué System.Web.HttpUtility.UrlEncode no proporciona nombre de espacio de nombres en Visual C# 2008?

El tipo o espacio de nombres 'HttpUtility' no existe en el espacio de nombres 'System.Web' (¿falta una asamblea referencia?)

error? Estoy usando Visual C# 2008, Express Edition.

El código que estoy usando es simplista:

using System; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.IO; 
using System.Web; 
namespace Lincr 
{ 
    public partial class frmMain : Form 
    { 
     public frmMain() 
     { 
      InitializeComponent(); 
     } 

     private void cmdShorten_Click(object sender, EventArgs e) 
     { 
      WebRequest wrURL; 
      Stream objStream; 
      wrURL = WebRequest.Create("http://lin.cr?l=" + System.Web.HttpUtility.UrlEncode(txtURL.Text) + "&mode=api&full=1"); 
      objStream = wrURL.GetResponse().GetResponseStream(); 
      StreamReader objSReader = new StreamReader(objStream); 
      textBox1.Text = objSReader.ReadToEnd().ToString(); 

     } 

    } 
} 

Respuesta

27

Es necesario incluir una referencia a System.Web. Haga clic con el botón derecho en su proyecto en el Explorador de soluciones y elija Agregar referencia .... Si echa un vistazo al MSDN verá que está contenido en el ensamblaje System.Web.dll, por lo que recuerdo, esto no está referenciado por defecto en nuevos proyectos.

+0

¿no utiliza "System.web" para agregar la referencia automáticamente? – Sathya

+0

¿Ha comprobado que se hace referencia a él? –

+0

De hecho, no se hizo referencia, se agregó la referencia y funciona. – Sathya

29

Sólo en caso de que alguien se tropieza con esto, se está ejecutando VS 2010 y no puede encontrar System.Web en las referencias disponibles ...

Haga clic derecho sobre el proyecto y seleccione Propiedades, si el marco de destino se establece en " .Net Framework 4 Client "luego cámbialo a .Net Framework 4".

Pero cuidado esto se cerrará, vuelva a abrir y reconstruir su proyecto (también si tiene unas referencias de servicios web en estos tendrán que ser refrescado)

+2

+1 Gracias. Normalmente no uso Express, así que me preguntaba por qué no podía encontrar esta referencia. – kervin

+0

Brillante. Gracias. – Domenic

+0

¡Gracias! Pensé que me estaba perdiendo algo obvio. – MrZander

0
  1. clic en la ficha del proyecto en el menú
  2. clic en Agregar referencias
  3. en la ventana Referencias clic sobre el marco y comprobar el System.Web
2

Para las personas que utilizan .NET 4.0 o posterior, puede utilizar WebUtility.UrlEncode que trabaja con Pro cliente archivo (no requiere referencia de ensamblado System.Web).

Cuestiones relacionadas