【问题标题】:Why Uri.TryCreate return TRUE for Uri like mail:foo?为什么 Uri.TryCreate 为像 mail:foo 这样的 Uri 返回 TRUE?
【发布时间】:2011-03-21 12:10:11
【问题描述】:

为什么使用方法Uri.TryCreate 如果 URI 不在 Uri.Schema 中,我得到 BOOL TRUE??。

这里是来自 MSDN 的 Uri.Schema: http://msdn.microsoft.com/en-us/library/system.uri.scheme.aspx

例如尝试一个字符串 "mail:foo" 它返回 True,我不明白为什么。

有什么想法吗?可能是 MS 框架中的错误,或者可能是我头脑中的错误 :-)?

public static bool IsValidUriHttp(string uriString)
        {
            Uri test = null;
            return Uri.TryCreate(uriString, UriKind.Absolute, out test);
        }

谢谢

【问题讨论】:

    标签: c# asp.net uri


    【解决方案1】:

    如果您看到Documentation,那么它会说:

    Scheme 属性返回用于初始化 Uri 实例的方案。此属性并不表示用于初始化 Uri 实例的方案已识别

    所以它只显示方案,无论它是否是已知方案。

    此外,Uri.TryCreate() 尝试使用任何感觉可以的方案创建 Uri。

    就像我试过这个,看看我得到了什么:

    Uri t = null;
    Uri.TryCreate("rwr:dsffs",UriKind.Absolute, out t).Dump();
    t.Dump();
    

    【讨论】:

    • 我现在明白了。感谢您的测试
    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2022-01-20
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多