2010-07-15 9 views
0

J'ai besoin de UrlEncode dans mon application parce que je soumets un formulaire à mon serveur. Mon application est un utilitaire de console rapide ciblant .NET 3.5.UrlEncode/System.Web non disponible dans l'application console?

La page indique que j'ai besoin de l'assemblage System.Web, mais quand j'essaie d'ajouter la référence, elle n'est pas là. Mon application WebServer l'a également ciblée sur 3.5 mais cette application de console ne peut pas la référencer. Pourquoi pas? Comment puis-je accéder à UrlEncode?

Répondre

2

Vous pouvez simplement vous assurer que vous avez ajouté une référence à System.Web.dll, qui peut ne pas figurer dans un projet de console par défaut.

Je suppose que cela ne figure pas dans le profil client, je ne sais pas si c'est un problème pour vous.

Je viens de tester cela avec une application console à partir de la ligne de commande:

using System; 
using System.Web; 

class Test 
{ 
    static void Main() 
    { 
     string text = "hello there"; 
     string encoded = HttpUtility.UrlEncode(text); 
     Console.WriteLine(encoded); // prints hello+there 
    } 
} 

j'ai pu compiler simplement avec

csc Test.cs 

mais je soupçonne que le fichier de réponse par défaut contient plus l'assemblage Références que le modèle de projet Application console par défaut dans Visual Studio ...

+0

C'est la chose, je vois System.Web. * mais pas system.web. Voici une image http://i30.tinypic.com/jt1e80.jpg Comme vous pouvez le voir, il s'agit de .NET 3.5 mais pas de profil client. -edit- note que j'utilise System.Web.Extension pour des raisons json –

+1

J'ai parcouru le chemin complet ('C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Web.dll') et cela a bien fonctionné . Bizarre qu'il n'apparaisse pas dans la fenêtre de référence d'ajout par défaut. –

+0

@ acidzombie24: C'est complètement bizarre. System.Web certainement * devrait * être disponible ... c'est pour moi, dans VS2008. Vérification de C# Express 2010 maintenant ... –