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¶meter2=something"); // for params
您还可以使用System.Net.WebUtility.UrlDecodeoops,您可以选择.Net 4客户端配置文件不支持该功能。但是为什么?为什么是一个很好的问题。我的猜测是,他们只是没有考虑清楚。这应该是公认的答案,添加System.Web只是为了转义和取消转义字符串是不可取的。转义***字符串方法是UrlEncode的替代品。对于UrlDecode,您需要Uri、UnescapeDataString