当前位置: 首页 > 编程语言 > C#

Uri.EscapeDataString在NUnit测试和asp.netwebservice中的行为有什么区别?

时间:2023-04-10 14:57:05 C#

Uri.EscapeDataString它在NUnit测试和asp.netweb服务中的表现有何不同?我使用Uri.EncodeDataString在URL上发送查询字符串。原来的字符串是:Photo($select=Name,Id)在我运行在VS2015调试器中的asp.netweb服务中,Uri.EncodeDataString会返回:Photo(%24select%3DName%2CId)但是,在NUnit中运行测试VS2015中的Resharper测试运行程序,它返回:Photo%28%24select%3DName%2CId%29。注意括号编码的区别。为什么括号在单元测试中编码而不是在Web服务中编码?不应该在Web服务中对括号进行编码吗?我在.Net4.6下运行,所以我不应该受到StackOverflow上其他地方讨论的RFC3986问题的影响(这里、这里、这里和网络上的许多其他地方)。最后,我确实受到RFC3986问题的影响。事实证明,差异是.Net4.5的“怪癖”模式。在asp.net应用程序中运行时,.Net将尝试保持应用程序与以前版本的兼容性,除非明确设置。我进入框架代码并在UriParser中发现了一个怪癖设置。谷歌搜索让我找到了这篇关于web.config中的元素的文章。接近尾声时,它说:“如果Web.config中没有属性,我们假设应用程序需要4.0怪癖。”一旦我将targetFramework="4.5"添加到我的web.config中,Uri.EscapeDataString就按照我预期的性能工作。以上就是C#学习教程:NUnit测试中Uri.EscapeDataString的行为和asp.netwebservice有什么区别?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: