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

时间:2010-01-27 11:02:11

标签: .net vb.net visual-studio-2010 console-application urlencode

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

System.Web.HttpUtility.UrlEncode(item)

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

this question中,Anjisan建议添加对System.Web的引用,如下所示:

  1. 在您的解决方案资源管理器中,右键单击引用
  2. 选择“添加参考”
  3. 在“添加引用”对话框中,使用.NET选项卡
  4. 向下滚动到System.Web,选择该项,然后按“确定”
  5. 但是,我在该位置没有System.Web条目。

7 个答案:

答案 0 :(得分:32)

System.Web存在,但默认情况下,Visual Studio似乎没有按名称排序。您需要点击Component name列才能对该列表进行排序。

我能够运行此代码:

Console.WriteLine(System.Web.HttpUtility.UrlEncode(" ")); // +

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

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

答案 1 :(得分:14)

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

答案 2 :(得分: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,因为该列表是根据目标框架过滤的。

答案 3 :(得分:4)

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

答案 4 :(得分:1)

您需要添加对 System.Web System.Web.Extensions 的引用。

答案 5 :(得分:1)

将项目的目标框架从“.NET Framework 4 Client Profile”更改为“.NET Framework 4.0”帮助我,使用.NET Framework 4 Client Profile作为Target框架,我能够通过浏览添加System.Web 2.0版本来自添加引用窗口的C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727但对System.Web 4.0 dll执行相同的操作会发出警告。

答案 6 :(得分:1)

对于Visual Studio 2010中的VB项目,将目标框架从“.NET Framework 4.0 Client Profile”更改为“.NET Framework 4.0”的选项位于Project>属性>编译> '高级编译选项......'