7

http://msdn.microsoft.com/en-us/library/system.urihostnametype.aspxおよびhttp://msdn.microsoft.com/en-us/library/system.uri.checkhostname.aspxのドキュメントは、ちょっと不明。

Uri.CheckHostName(string)UriHostNameType.Dns有効な DNS ホスト名に対して返され、文字列に無効な文字が含まれている場合などに返されUriHostNameType.Unknownます。このメソッドはどのような条件下で返されUriHostNameType.Basicますか?

4

3 に答える 3

6

.NET Core がオープン ソースであることは確かです。

Mono と同じように、 を返すことはありませんUriHostNameType.Basic

ソースコードへのリンク

于 2015-07-19T20:08:22.937 に答える
4

私の質問に答えるには、Mono のソース コードを確認するだけでよいと思いました。https://github.com/mono/mono/blob/master/mcs/class/System/System/Uri.csからのCheckHostNameメソッドは次のとおりです。

    public static UriHostNameType CheckHostName (string name) 
    {
        if (name == null || name.Length == 0)
            return UriHostNameType.Unknown;

        if (IsIPv4Address (name)) 
            return UriHostNameType.IPv4;

        if (IsDomainAddress (name))
            return UriHostNameType.Dns;             

        IPv6Address addr;
        if (IPv6Address.TryParse (name, out addr))
            return UriHostNameType.IPv6;

        return UriHostNameType.Unknown;
    }

UriHostNameType.Basicまったく使われていないようです。おそらく、Microsoft の実装はこの値を返すことができますか?

于 2013-08-28T17:41:10.993 に答える
0

UriHostNameType.Basicドメイン ラベルの少なくとも 1 つが「-」(ダッシュ) または「_」(アンダースコア) で始まる DNS ホスト名がある場合、UriBuilderおよびによって使用されます。Uriたとえば、「_caldavs._tcp.google.com」は を返しUriHostNameType.Basicます。

ただし、Uri.CheckHostName(string)この値を返すことはないようです。上記の同じ DNS ホスト名に対しては、UriHostNameType.Unknown.

于 2021-02-04T18:27:44.107 に答える