在 .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?)
问题出在别的地方。
正如您在 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 取代