2010-01-27 135 views
28

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

System.Web.HttpUtility.UrlEncode(item) 

错误消息:'HttpUtility' 不是一个成员'网络'。

this question Anjisan建议添加到System.Web程序参考,具体如下:

  1. 在您的解决方案资源管理器中,右键单击引用
  2. 选择 “添加引用”
  3. 在“添加引用“对话框,使用.NET选项卡
  4. 向下滚动到System.Web,选择该选项并点击确定

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

+0

http://stackoverflow.com/questions/3840762/how-do-you-urlencode-without-using-system-web – 2011-09-17 20:38:47

回答

30

System.Web是存在的,但似乎Visual Studio中默认情况下不按名称排序。您需要点击Component name列才能获得排序的列表。

我能够运行这段代码:没有System.Web.Extensions

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

只要添加一个System.Web参考。

而且,此时应更换从.NET Framework 4的客户端配置文件到.NET Framework 4的目标框架;去工程>>属性... >>应用程序选项卡

+0

我仍然无法找到它。我只有“System.Web.ApplicationServices”和“System.Web.Services”。你正在使用哪个版本的Visual Studio/.NET? – George 2010-01-27 11:44:26

+0

我用VS2010b2测试过;你是否整理了这个列表?你定义了什么项目类型,框架版本? – 2010-01-27 12:16:17

+0

我确实对列表进行了排序。这是一个控制台应用程序。 Framework 4.0,运行时版本v4.0.21006。 – George 2010-01-27 13:03:31

0

您需要添加一个引用都的System.WebSystem.Web.Extensions程序

5

@iar,框架没有设置为“错了”。控制台和Windows应用程序(还有更多)默认在Visual Studio 2010中以.NET Framework 4 Client Profile为目标。这是设计。当您在“新建项目”对话框中定位“.NET Framework 4”时会发生这种情况。为什么没有找到System.Web.dll是因为它不是.NET Framework 4客户端配置文件的一部分,因此项目系统无法找到它并在构建时发出警告(您可能忽略了这一点,并为您提供参考System.Web.dll中)。在添加引用对话框的.NET选项卡中也找不到System.Web.dll,因为该列表是根据目标框架进行过滤的。

14

确保你的目标框架是 “.NET Framework 4" 的不” 的.NET Framework 4客户端配置文件”。

+1

这是正确的答案,但您可能需要明确添加'System.Web'作为参考(在Project> Add Reference下) – arserbin3 2014-08-19 15:21:11

1

从“.NET框架4客户端配置文件”更改该项目的目标框架,以”框架4.0" 帮我,用.NET Framework 4的客户端配置文件作为目标框架,我能够通过浏览添加的System.Web 2.0版本从添加引用窗口到C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727,但对System.Web 4.0 dll也做了相同的警告。

1

在Visual Studio 2010中VB项目,从“.NET Framework 4.0客户端配置文件”更改目标框架选项”框架4.0" 是在项目>属性>编译>“高级编译选项... '

4

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

+0

这是更好的解决方案。 – Freshblood 2015-12-13 14:33:36