2009-09-02 7 views
20

Je suis en train de coder une URL en utilisant la méthode HttpUtility.UrlEncode(), pourquoi suis-je recevoirPourquoi le nom de l'espace de noms System.Web.HttpUtility.UrlEncode n'existe pas dans Visual C# 2008?

Le nom du type ou espace de noms « HttpUtility » n'existe pas dans l'espace de noms « System.Web » (vous manque un ensemble référence?)

erreur? J'utilise Visual C# 2008, Express Edition.

Le code J'utilise est simpliste:

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

     } 

    } 
} 

Répondre

27

Vous devez inclure une référence à System.Web. Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions et choisissez Ajouter une référence .... Si vous jetez un oeil à MSDN, vous verrez qu'il est contenu dans l'assemblage System.Web.dll, autant que je me souvienne, ce n'est pas référencé par défaut dans les nouveaux projets.

+0

ne pas "using System.web" ajouter la référence automatiquement? – Sathya

+0

Avez-vous vérifié qu'il est référencé? –

+0

En effet, il n'a pas été référencé, ajouté la référence et fonctionne. – Sathya

29

Juste au cas où quelqu'un tombe par hasard sur ce, est en cours d'exécution VS 2010 et ne peut pas trouver System.Web dans les références disponibles ...

Faites un clic droit sur le projet et sélectionnez Propriétés, si le cadre cible est réglé sur " .Net Framework 4 Client "puis changez-le en" .Net Framework 4 ".

Mais attention cela va fermer, rouvrir et reconstruire votre projet (même si vous avez une des références de service Web ceux-ci devront être rafraîchi)

+2

+1 Merci. Je n'utilise pas normalement Express, donc je me demandais pourquoi je ne pouvais pas trouver cette référence. – kervin

+0

Brillant. Merci. – Domenic

+0

Merci! Je pensais qu'il me manquait quelque chose d'évident. – MrZander

0
  1. cliquez sur l'onglet du projet dans le menu
  2. cliquez sur Ajouter des références
  3. dans la fenêtre Références cliquez sur le cadre et vérifiez la System.Web
2

Pour les personnes utilisant .NET 4.0 ou version ultérieure, vous pouvez utiliser WebUtility.UrlEncode qui fonctionne avec le client pro fichier (ne nécessite pas de référence d'assembly System.Web).