HttpUtility not recognised in .Net 4.5

泪湿孤枕 提交于 2019-12-06 18:33:06

问题


I Developed a WinForm application in with the target framework set to .net 4.0, now I wish to add to a project that has it's target framework set to .net 4.5. After I added the 4.0 WinForm application to my 4.5 project I keep getting the an error on my HttpUtility object.

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

"The name 'HttpUtility' does not exist in the current context"

I did include the System.Web namespace where the HttpUtility is located.

Visual Studio Error:

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

回答1:


The problem is somewhere else.

As you can see in MSDN the HttpUtility class is present in System.Web in .NET Framework 4.5.

You're probably targeting the Client Profile: target the full framework in Project Properties. Otherwise:

  • either you did not add the right using statement using System.Web;
  • or you did not add the reference to System.Web.dll in the project.



回答2:


WebUtility

You also have another possibility: Use the WebUtility class. The WebUtility class is recommended by Microsoft itself and should be used outside of web applications.

Like the HttpUtility class it also provides you with the possibility to encode and decode URLs.

This way you don't have the problems with importing the library into your project or setting some specific profiles.


From the Documentation (Source)

The HttpUtility class is used internally by the HttpServerUtility class, whose methods and properties are exposed through the intrinsic ASP.NET Server object. Additionally, the HttpUtility class contains encoding and decoding utility methods that are not accessible from the Server.

To encode or decode values outside of a web application, use the WebUtility class.




回答3:


The HttpUtility class exists from .NET 1.1, so I think it is not possible for regular projects to 'not see it', as long as you have included a reference to System.Web.

You might be using a PCL (Portable Class Library), which uses a stripped down version of the framework that is supported on the platforms you selected, like Windows Store apps, Windows Phone, Silverlight, etc.




回答4:


I hope this link will help you. http://msdn.microsoft.com/en-us/library/system.web.httputility(v=vs.110).aspx Dot net framework 4.5 support HttpUtility as it is under System.Web namespace. Also adding a System.Web reference, without System.Web.Extensions reference into your project. If it doesn't work remove the existing and add new reference of System.Web into project. Also check which framework it is targeting it should be .NET Framework 4 or 4.5 without Client.



来源:https://stackoverflow.com/questions/27898258/httputility-not-recognised-in-net-4-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!