在 .Net 4.5 中无法识别 HttpUtility

本文关键字:识别 HttpUtility Net | 更新日期: 2023-09-27 18:37:07

我开发了一个目标框架设置为 .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 命名空间。

Visual Studio 错误:

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

在 .Net 4.5 中无法识别 HttpUtility

问题出在别的地方。

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

你可能以客户端配置文件为目标:以项目属性中的完整框架为目标。否则:

  • 要么您没有添加正确的使用语句using System.Web;
  • 或者您没有在项目中添加对System.Web.dll的引用。

WebUtility

您还有另一种可能性:使用 WebUtility 类。WebUtility类由Microsoft本身推荐,应在 Web 应用程序外部使用。

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

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

<小时 />

来自文档(来源)

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

若要在 Web

应用程序外部对值进行编码或解码,请使用 WebUtility 类。

HttpUtility类存在于 .NET 1.1 中,所以我认为常规项目不可能"看不到它",只要您包含对System.Web的引用。

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

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

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

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