在.Net 4.5中无法识别HttpUtility

Mar*_*eyn 20 c# winforms system.web

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

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

"当前上下文中不存在名称'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?)
Run Code Online (Sandbox Code Playgroud)

gia*_*min 47

问题出在其他地方.

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

您可能正在定位客户端配置文件:定位项目属性中的完整框架.除此以外:

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


kam*_*mwo 5

WebUtility

您还有另一种可能性:使用WebUtility类.该WebUtility班是由微软自己推荐的,应该的Web应用程序之外使用.

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

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


来自文档(来源)

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

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