【问题标题】:C# URI validationC# URI 验证
【发布时间】:2020-02-26 14:35:29
【问题描述】:

我在 StackOverflow 上找到了一些关于 C# URI 验证器的答案。但是有人可以解释我哪里错了吗? Wikipedia 上有几个例子,一个很特别。我无法在 C# 中使其有效:

ldap://[2001:db8::7]/c=GB?objectClass?one

此方法无效Uri.IsWellFormedUriString("ldap://[2001:db8::7]/c=GB?objectClass?one", UriKind.RelativeOrAbsolute);

谁错了? C# 还是维基百科?

【问题讨论】:

    标签: c# validation uri


    【解决方案1】:

    你错了!

    如果我测试它,我会得到

    string _uri = "ldap://[2001:db8::7]/c=GB?objectClass?one";
    Uri.IsWellFormedUriString(_uri, UriKind.RelativeOrAbsolute) == True;
    

    试试看:https://dotnetfiddle.net/H4k8fH

    【讨论】:

    • 嗯,我明白了。但有些不对劲。我不知道是什么。看看这个i.imgur.com/WRJx780.png 现在我可以在dotnetfiddle 中使它有效。但是在我的代码中仍然无效,并且另一个带有手表的屏幕截图:i.imgur.com/ZRuyQDS.png
    • 那么你的字符串可能会有所不同。你能仔细检查一下吗?
    • 是的,三重检查。我真的不明白发生了什么。当我将该代码放入没有任何其他代码的单个解决方案中时。这是有效的。但是在那个旧的解决方案中是无效的。我真的不明白。但是感谢您在 dotnetfiddle 中的检查。我会尝试找出问题所在,然后我会在此处给出答案。但这太奇怪了。
    • 包含您正在测试的 URI 的字符串的来源是什么?当您检查代码是否相等时,它会有所不同吗?
    • 是的,我将实现该正则表达式方法。真的很疯狂 :D 正则表达式会有所帮助 :D 谢谢
    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 2011-02-05
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多