C# Httputility.urldecode在.Net4中的替换?

C# Httputility.urldecode在.Net4中的替换?,c#,encoding,.net-4.0,.net-2.0,system.web,C#,Encoding,.net 4.0,.net 2.0,System.web,我得到了一个旧程序(类库)由.net2开发。最近我想在新项目中使用该程序,即使用.Net4(用于新的WPF功能)。所以有一个大问题: .Net4不支持系统.Web,因此无法使用Httputility.urldecode 那么什么是urldecodejop?如何将其更改为.Net4支持的内容?在HttpServerUtility上尝试UrlDecode方法: System.Web.HttpContext.Current.Server.UrlDecode() 正如您在下面的链接中所看到的,.NET

我得到了一个
旧程序(类库)
.net2
开发。最近我想在新项目中使用该程序,即使用
.Net4(用于新的WPF功能)
。所以有一个大问题:

.Net4不支持系统.Web,因此无法使用Httputility.urldecode


那么什么是
urldecode
jop?如何将其更改为
.Net4
支持的内容?

在HttpServerUtility上尝试UrlDecode方法:

System.Web.HttpContext.Current.Server.UrlDecode()

正如您在下面的链接中所看到的,.NET Framework 4支持HttpUtility。 由于@Alun是上面提到的mentioend,我认为您应该使用.NET4客户端配置文件


如果您真的必须针对客户端配置文件(不包括HttpUtility)运行,那么您可以对此进行检查。(这个问题是关于3.5SP1的,但在4.0中没有任何变化)


不过,您真的应该看看是否不能只使用完整的框架。

对于c#用户来说,HttpUtility是白费力气,因为它还没有(被引用)
2个备选方案:

  string a =  System.Uri.EscapeUriString("https://some.url.goes.here"); // for path
  string b = System.Uri.EscapeDataString("parameter1=1&parameter2=something"); // for params

您还可以使用System.Net.WebUtility.UrlDecode

oops,您可以选择.Net 4客户端配置文件不支持该功能。但是为什么?为什么是一个很好的问题。我的猜测是,他们只是没有考虑清楚。这应该是公认的答案,添加System.Web只是为了转义和取消转义字符串是不可取的。转义***字符串方法是UrlEncode的替代品。对于UrlDecode,您需要Uri、UnescapeDataString