2009-09-02 15 views
20

Sto cercando di codificare un URL utilizzando il metodo HttpUtility.UrlEncode(), perché mi apparePerché System.Web.HttpUtility.UrlEncode che fornisce il nome dello spazio dei nomi non esiste in Visual C# 2008?

Il tipo o dello spazio dei nomi il nome 'HttpUtility' non esiste nello spazio dei nomi 'System.Web' (le manca un assembly riferimento?)

errore? Sto usando Visual C# 2008, Express Edition.

Il codice che sto utilizzando è riduttivo:

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(); 

     } 

    } 
} 

risposta

27

è necessario includere un riferimento a System.Web. Fare clic con il tasto destro del mouse sul progetto in Esplora soluzioni e scegliere Aggiungi riferimento .... Se dai un'occhiata a MSDN vedrai che è contenuto nell'assemblaggio System.Web.dll, per quanto mi ricordo, questo non è referenziato di default nei nuovi progetti.

+0

non "utilizza System.web" aggiunge il riferimento automaticamente? – Sathya

+0

Hai controllato che sia referenziato? –

+0

In effetti non è stato referenziato, aggiunto il riferimento e funziona. – Sathya

29

Solo nel caso qualcuno si imbatte in questo, è in esecuzione VS 2010 e non riesce a trovare System.Web nei riferimenti disponibili ...

Fare clic destro sul progetto e selezionare Proprietà, se il framework di destinazione è impostato su " .Net Framework 4 Client "quindi cambiarlo in" .Net Framework 4 ".

Ma attenzione questa si chiuderà, riaprire e ricostruire il progetto (anche se si dispone di un riferimento di servizio web in questi dovranno essere aggiornati)

+2

+1 Grazie. Normalmente non uso Express, quindi mi chiedevo perché non riuscissi a trovare questo riferimento. – kervin

+0

Brillante. Grazie. – Domenic

+0

Grazie! Pensavo che mi mancasse qualcosa di ovvio. – MrZander

0
  1. Fare clic sulla scheda progetto nel menù
  2. clic su Aggiungi riferimento
  3. nella finestra Riferimenti click sul quadro e controllare lo System.Web
2

Per le persone che utilizzano .NET 4.0 o versione successiva, è possibile utilizzare WebUtility.UrlEncode che lavora con il cliente pro file (non richiede il riferimento all'assembly System.Web).

Problemi correlati