26

我在目标框架设置为 .net 4.0 的情况下开发了一个 WinForm 应用程序,现在我希望添加到一个目标框架设置为 .net 4.5 的项目中。在我将 4.0 WinForm 应用程序添加到我的 4.5 项目后,我的 HttpUtility 对象上不断出现错误。

 data += "&batch_data=" + HttpUtility.UrlEncode(batch, System.Text.Encoding.GetEncoding("ISO-8859-1"));

“当前上下文中不存在名称‘HttpUtility’”

我确实包含了 HttpUtility 所在的 System.Web 命名空间。

视觉工作室错误:

CS0234 The type or namespace name 'HttpUtility' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
4

5 回答 5

56

问题出在其他地方。

正如您在MSDN中看到的那样,HttpUtility该类存在System.Web于 .NET Framework 4.5 中。

您可能针对的是客户端配置文件:针对项目属性中的完整框架。除此以外:

  • 要么你没有添加正确的 using 语句using System.Web;
  • 或者您没有System.Web.dll在项目中添加对的引用。
于 2015-01-12T09:00:17.043 回答
16

网络实用程序

您还有另一种可能性:使用WebUtility 类。该类WebUtility是 Microsoft 自己推荐的,应该在 Web 应用程序之外使用。

HttpUtility该类一样,它还为您提供了对 URL 进行编码和解码的可能性。

这样,您就不会遇到将库导入项目或设置某些特定配置文件的问题。


来自文档(来源

HttpUtility 类由 HttpServerUtility 类在内部使用,其方法和属性通过内部 ASP.NET Server 对象公开。此外,HttpUtility 类包含无法从服务器访问的编码和解码实用程序方法。

要在 Web 应用程序之外对值进行编码或解码,请使用 WebUtility 类。

于 2017-07-03T10:09:18.897 回答
3

该类HttpUtility存在于 .NET 1.1 中,因此我认为常规项目不可能“看不到它”,只要您包含对System.Web.

您可能正在使用 PCL(可移植类库),它使用您选择的平台(如 Windows 应用商店应用程序、Windows Phone、Silverlight 等)支持的框架的精简版本。

于 2015-01-12T08:58:45.817 回答
2

我希望这个链接对你有帮助。 http://msdn.microsoft.com/en-us/library/system.web.httputility(v=vs.110).aspx Dot net framework 4.5 支持 HttpUtility,因为它位于 System.Web 命名空间下。还将 System.Web 引用添加到您的项目中,而不使用 System.Web.Extensions 引用。如果它不起作用,请删除现有的 System.Web 并将新引用添加到项目中。还要检查它所针对的框架应该是没有客户端的 .NET Framework 4 或 4.5。

于 2015-01-12T09:33:31.840 回答
0

我在 .net 4.5.2(使用 VS2019)中遇到了这个问题。我确实检查了我是否使用了完整的框架,并且我还尝试在 using 语句中明确声明 System.Web,尽管 VS 抱怨不需要 using 子句。

System.Web.Utility 似乎已被 System.Net.Webutility 取代

于 2020-07-13T18:41:06.203 回答