在.Net 4.5中无法识别HttpUtility

时间:2015-01-12 08:56:31

标签: c# winforms system.web

我开发了一个WinForm应用程序,目标框架设置为.net 4.0,现在我希望添加一个项目,将其目标框架设置为.net 4.5。在我将4.5 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?)

5 个答案:

答案 0 :(得分:43)

问题出在其他地方。

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

您可能瞄准客户端配置文件:定位项目属性中的完整框架。否则:

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

答案 1 :(得分:5)

WebUtility

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

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

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

来自文档(Source

  

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

     

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

答案 2 :(得分:3)

{1.1}存在来自.NET 1.1的HttpUtility类,因此我认为只要您包含对{{1的引用',常规项目就不可能看不到它}}

您可能正在使用PCL(Portable Class Library),它使用您所选平台支持的框架的精简版本,如Windows应用商店应用,Windows Phone,Silverlight等。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

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