控制台应用程序中的HttpUtility.UrlEncode

Geo*_*rge 30 .net vb.net urlencode console-application visual-studio-2010

我想在控制台应用程序,VB.NET,VS 2010 Beta 2中使用HttpUtility.UrlEncode.

System.Web.HttpUtility.UrlEncode(item)
Run Code Online (Sandbox Code Playgroud)

错误消息:'HttpUtility'不是'Web'的成员.

这个问题中, Anjisan建议添加对System.Web的引用,如下所示:

  1. 在解决方案资源管理器中,右键单击引用
  2. 选择"添加参考"
  3. 在"添加引用"对话框中,使用.NET选项卡
  4. 向下滚动到System.Web,选择它,然后点击确定

但是,我在该位置没有System.Web条目.

Rub*_*ias 32

System.Web是的,但似乎Visual Studio默认情况下不按名称排序.您需要单击Component name列以对列表进行排序.

我能够运行这段代码:

Console.WriteLine(System.Web.HttpUtility.UrlEncode(" ")); // +
Run Code Online (Sandbox Code Playgroud)

只需添加System.Web引用,无需 System.Web.Extensions.

此外,您应该将目标框架从.NET Framework 4 Client Profile替换为.NET Framework 4; 转到项目>>属性... >>应用程序选项卡

  • 您应该将目标框架从".NET Framework 4 Client Profile"替换为".NET Framework 4"; 转到"项目,{0}属性...,应用程序选项卡" (9认同)

Rus*_*sby 14

确保您的目标框架是".NET Framework 4"而不是".NET Framework 4 Client Profile".

  • 这是正确答案,但您可能需要显式添加`System.Web`作为参考(在Project> Add Reference下) (2认同)

小智 6

如果您使用 .NET 4.0 或更高版本,则可以使用WebUtility.UrlEncode,它适用于客户端配置文件(不需要 System.Web 程序集引用)。


Ion*_*rel 5

@ iar,框架没有设置为"错误的".默认情况下,Visual Studio 2010中的控制台和Windows应用程序(还有更多)定位.NET Framework 4 Client Profile.这是设计使然.当你在New Project Dialog中定位".NET Framework 4"时会发生这种情况.为什么它没有找到System.Web.dll是因为它不是.NET Framework 4 Client Profile的一部分,因此项目系统无法找到它并在构建期间发出警告(您可能会忽略它,授予您引用System.Web.dll中).您也不会在"添加引用"对话框的".NET"选项卡中找到System.Web.dll,因为该列表是根据目标框架过滤的.