在.Net 4.5中无法识别HttpUtility
我开发了一个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"));
“当前上下文中不存在名称’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;
添加正确的using语句using System.Web;
- 或者您没有在项目中添加对
System.Web.dll
的引用。
HttpUtility
类存在于.NET 1.1中,因此我认为只要您包含对System.Web
的引用,常规项目就不可能“看不到它”。
您可能正在使用PCL( 可移植类库 ),它使用您所选平台支持的框架的精简版本,如Windowsapp store应用,Windows Phone,Silverlight等。
WebUtility
您还有另一种可能性:使用WebUtility类 。 WebUtility
类是Microsoft自己推荐的,应该在Web应用程序之外使用。
与HttpUtility
类一样,它也为您提供编码和解码URL的可能性。
这样,您就不会将库导入项目或设置某些特定的配置文件。
来自文档( 来源 )
HttpUtility类由HttpServerUtility类在内部使用,其方法和属性通过内部ASP.NET Server对象公开。 此外,HttpUtility类包含无法从服务器访问的编码和解码实用程序方法。
要对Web应用程序外部的值进行编码或解码,请使用WebUtility类。
我希望这个链接可以帮到你。 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的新引用添加到项目中。 还要检查它所针对的框架应该是没有Client的.NET Framework 4或4.5。