Uri クラス

定義

URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。

public ref class Uri
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Uri : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
type Uri = class
    interface ISerializable
type Uri = class
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
[<System.Serializable>]
type Uri = class
    inherit MarshalByRefObject
    interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
    interface ISerializable
Public Class Uri
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
継承
Uri
継承
属性
実装

次の例では、 クラスのインスタンスを Uri 作成し、 を使用して GET 要求 HttpClientを実行します。

Uri^ siteUri = gcnew Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient^ client = gcnew HttpClient;
HttpRequestMessage^ request = gcnew HttpRequestMessage(HttpMethod::Get, siteUri);
HttpResponseMessage^ response = client->Send(request);
Uri siteUri = new Uri("http://www.contoso.com/");

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, siteUri);
HttpResponseMessage response = client.Send(request);
let siteUri = Uri "http://www.contoso.com/"

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
use client = new HttpClient ()
use request = new HttpRequestMessage (HttpMethod.Get, siteUri)
use response = client.Send request
Dim siteUri As New Uri("http://www.contoso.com/")

' HttpClient lifecycle management best practices:
' https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Get, siteUri)
Dim response As HttpResponseMessage = client.Send(request)

次のコード スニペットは、 クラスのさまざまなプロパティの値の例を示しています。

Uri uri = new Uri("https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName");

Console.WriteLine($"AbsolutePath: {uri.AbsolutePath}");
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"DnsSafeHost: {uri.DnsSafeHost}");
Console.WriteLine($"Fragment: {uri.Fragment}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"HostNameType: {uri.HostNameType}");
Console.WriteLine($"IdnHost: {uri.IdnHost}");
Console.WriteLine($"IsAbsoluteUri: {uri.IsAbsoluteUri}");
Console.WriteLine($"IsDefaultPort: {uri.IsDefaultPort}");
Console.WriteLine($"IsFile: {uri.IsFile}");
Console.WriteLine($"IsLoopback: {uri.IsLoopback}");
Console.WriteLine($"IsUnc: {uri.IsUnc}");
Console.WriteLine($"LocalPath: {uri.LocalPath}");
Console.WriteLine($"OriginalString: {uri.OriginalString}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Query: {uri.Query}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Segments: {string.Join(", ", uri.Segments)}");
Console.WriteLine($"UserEscaped: {uri.UserEscaped}");
Console.WriteLine($"UserInfo: {uri.UserInfo}");

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
let uri = Uri "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"

printfn $"AbsolutePath: {uri.AbsolutePath}"
printfn $"AbsoluteUri: {uri.AbsoluteUri}"
printfn $"DnsSafeHost: {uri.DnsSafeHost}"
printfn $"Fragment: {uri.Fragment}"
printfn $"Host: {uri.Host}"
printfn $"HostNameType: {uri.HostNameType}"
printfn $"IdnHost: {uri.IdnHost}"
printfn $"IsAbsoluteUri: {uri.IsAbsoluteUri}"
printfn $"IsDefaultPort: {uri.IsDefaultPort}"
printfn $"IsFile: {uri.IsFile}"
printfn $"IsLoopback: {uri.IsLoopback}"
printfn $"IsUnc: {uri.IsUnc}"
printfn $"LocalPath: {uri.LocalPath}"
printfn $"OriginalString: {uri.OriginalString}"
printfn $"PathAndQuery: {uri.PathAndQuery}"
printfn $"Port: {uri.Port}"
printfn $"Query: {uri.Query}"
printfn $"Scheme: {uri.Scheme}"
printfn $"""Segments: {String.Join(", ", uri.Segments)}"""
printfn $"UserEscaped: {uri.UserEscaped}"
printfn $"UserInfo: {uri.UserInfo}"

// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password

注釈

この API の詳細については、「Uri の 補足 API 解説」を参照してください。

コンストラクター

Uri(SerializationInfo, StreamingContext)
古い.

SerializationInfo クラスと StreamingContext クラスの指定したインスタンスから、Uri クラスの新しいインスタンスを初期化します。

Uri(String)

指定した URI を使用して、Uri クラスの新しいインスタンスを初期化します。

Uri(String, Boolean)
古い.
古い.
古い.

指定した URI を使用し、明示的な文字エスケープ制御を使用して、Uri クラスの新しいインスタンスを初期化します。

Uri(String, UriCreationOptions)

指定した URI と追加UriCreationOptionsの を使用してUri、 クラスの新しいインスタンスを初期化します。

Uri(String, UriKind)

指定した URI を使用して、Uri クラスの新しいインスタンスを初期化します。 このコンストラクターでは、URI 文字列を相対 URI、絶対 URI、または不確定のいずれかに指定できます。

Uri(Uri, String)

指定したベース URI と相対 URI 文字列に基づいて、Uri クラスの新しいインスタンスを初期化します。

Uri(Uri, String, Boolean)
古い.
古い.
古い.

明示的な文字エスケープ制御を使用し、指定したベース URI と相対 URI に基づいて、Uri クラスの新しいインスタンスを初期化します。

Uri(Uri, Uri)

指定したベース Uri のインスタンスと相対 Uri のインスタンスの組み合わせに基づいて、Uri クラスの新しいインスタンスを初期化します。

フィールド

SchemeDelimiter

URI のアドレス部分と通信プロトコル スキームを区切る文字を指定します。 このフィールドは読み取り専用です。

UriSchemeFile

URI がファイルを指すポインターであることを指定します。 このフィールドは読み取り専用です。

UriSchemeFtp

ファイル転送プロトコル (FTP: File Transfer Protocol) 経由で URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeFtps

URI がファイル転送プロトコル セキュア (FTPS) を介してアクセスされるように指定します。 このフィールドは読み取り専用です。

UriSchemeGopher

Gopher プロトコル経由で URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeHttp

HTTP (Hypertext Transfer Protocol) 経由で URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeHttps

HTTPS (Secure Hypertext Transfer Protocol) 経由で URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeMailto

URI が電子メール アドレスであり、SMTP (Simple Mail Transport Protocol) 経由でこの URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeNetPipe

Windows Communication Foundation (WCF) によって使用される NetPipe スキームを通じて URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeNetTcp

Windows Communication Foundation (WCF) によって使用される NetTcp スキームを通じて URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeNews

URI がインターネット ニュース グループであり、この URI へ NNTP (Network News Transport Protocol) 経由でアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeNntp

URI がインターネット ニュース グループであり、この URI へ NNTP (Network News Transport Protocol) 経由でアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeSftp

SSH ファイル転送プロトコル (SFTP) を介して URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeSsh

URI に Secure Socket Shell プロトコル (SSH) を使用してアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeTelnet

URI に Telnet プロトコルを介してアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeWs

WEBSocket プロトコル (WS) を介して URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeWss

WEBSocket Secure プロトコル (WSS) を介して URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

プロパティ

AbsolutePath

URI の絶対パスを取得します。

AbsoluteUri

絶対 URI を取得します。

Authority

サーバーの DNS (Domain Name System) ホスト名または IP アドレスと、ポート番号を取得します。

DnsSafeHost

DNS の解決に安全に使用できるホスト名を、必要に応じてエスケープを解除してから取得します。

Fragment

エスケープされた URI フラグメント (空でない場合は先頭の '#' 文字を含む) を取得します。

Host

このインスタンスのホスト構成要素を取得します。

HostNameType

URI に指定したホスト名の型を取得します。

IdnHost

必要に応じて Punycode を使用し、ホストの RFC 3490 準拠国際化ドメイン名を取得します。 この文字列は、必要に応じてエスケープを解除後、DNS の解決に安全に使用できます。

IsAbsoluteUri

Uri インスタンスが絶対かどうかを示す値を取得します。

IsDefaultPort

URI のポート値が、このスキームの既定のポート値かどうかを示す値を取得します。

IsFile

指定した Uri がファイル URI かどうかを示す値を取得します。

IsLoopback

指定した Uri によってローカル ホストが参照されているかどうかを示す値を取得します。

IsUnc

指定した Uri が汎用名前付け規則 (UNC) パスかどうかを示す値を取得します。

LocalPath

ローカル オペレーティング システムでのファイル名表現を取得します。

OriginalString

Uri コンストラクターに渡された元の URI 文字列を取得します。

PathAndQuery

AbsolutePath プロパティと Query プロパティを疑問符 (?) で区切った形式で取得します。

Port

この URI のポート番号を取得します。

Query

指定した URI に含まれるクエリ情報 (空でない場合は先頭の '?' 文字を含む) を取得します。

Scheme

この URI のスキーム名を取得します。

Segments

指定した URI を構成するパス セグメントを格納している配列を取得します。

UserEscaped

Uri インスタンスの作成前に、URI 文字列が完全にエスケープされていたかどうかを示す値を取得します。

UserInfo

指定した URI に関連付けられているユーザー名、パスワードなどのユーザー固有の情報を取得します。

メソッド

Canonicalize()
古い.
古い.
古い.

内部的に格納された URI を正規形式に変換します。

CheckHostName(String)

指定したホスト名が有効な DNS 名であるかどうかを判断します。

CheckSchemeName(String)

指定したスキーム名が有効かどうかを判断します。

CheckSecurity()
古い.
古い.
古い.

このメソッドを呼び出しても、何も効果はありません。

Compare(Uri, Uri, UriComponents, UriFormat, StringComparison)

指定した比較規則を使用して、2 つの URI の指定部分を比較します。

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Equals(Object)

2 つの Uri インスタンスを比較し、相互に等価かどうかを判断します。

Escape()
古い.
古い.
古い.

パス構成要素内の安全でない文字または予約文字を 16 進の文字表現に変換します。

EscapeDataString(String)

文字列をエスケープ表現に変換します。

EscapeString(String)
古い.
古い.
古い.
古い.

文字列をエスケープ表現に変換します。

EscapeUriString(String)
古い.
古い.

URI 文字列をエスケープ表現に変換します。

FromHex(Char)

16 進数の数字に対応する 10 進数値を取得します。

GetComponents(UriComponents, UriFormat)

指定した特殊文字エスケープを使用して、現在のインスタンスの指定した構成要素を取得します。

GetHashCode()

URI を処理するためのハッシュ コードを取得します。

GetLeftPart(UriPartial)

Uri インスタンスの指定部分を取得します。

GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

現在のインスタンスをシリアル化するために必要なデータを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HexEscape(Char)

指定した文字を等価な 16 進数値に変換します。

HexUnescape(String, Int32)

指定した 16 進数文字表現を文字に変換します。

InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
IsBadFileSystemCharacter(Char)
古い.
古い.
古い.

ファイル システム名で文字が無効かどうかを示します。

IsBaseOf(Uri)

現在の Uri インスタンスが、指定した Uri インスタンスのベースかどうかを判断します。

IsExcludedCharacter(Char)
古い.
古い.
古い.

指定した文字をエスケープするかどうかを決定します。

IsHexDigit(Char)

指定した文字が有効な 16 進数の数字かどうかを判断します。

IsHexEncoding(String, Int32)

文字列内の文字が 16 進エンコードかどうかを判断します。

IsReservedCharacter(Char)
古い.
古い.
古い.

指定した文字が予約文字であるかどうかを判断します。

IsWellFormedOriginalString()

この Uri の作成に使用された文字列が正しい形式であったかどうか、およびこれ以上エスケープする必要がないかどうかを示します。

IsWellFormedUriString(String, UriKind)

文字列を使用して URI を作成する際に、文字列の形式が正しいかどうかを示し、文字列をそれ以上エスケープする必要がないことを確認します。

MakeRelative(Uri)
古い.
古い.
古い.
古い.

2 つの Uri インスタンスの相違点を判断します。

MakeRelativeUri(Uri)

2 つの Uri インスタンスの相違点を判断します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
Parse()
古い.
古い.
古い.

現在のインスタンスの URI を解析し、有効な URI で必要とされるすべての部分が含まれていることを確認します。

ToString()

指定した Uri インスタンスの正規文字列表現を取得します。

TryCreate(String, UriCreationOptions, Uri)

指定した String インスタンス と UriCreationOptionsを使用して新しい Uri を作成します。

TryCreate(String, UriKind, Uri)

指定した Uri インスタンスと String を使用して、新しい UriKind を作成します。

TryCreate(Uri, String, Uri)

指定したベースおよび相対 Uri のインスタンスを使用して、新しい String を作成します。

TryCreate(Uri, Uri, Uri)

指定したベースおよび相対 Uri のインスタンスを使用して、新しい Uri を作成します。

TryFormat(Span<Char>, Int32)

インスタンスの正規文字列表現 Uri を指定されたスパンに書式設定しようとします。

Unescape(String)
古い.
古い.
古い.

エスケープ シーケンスをエスケープ解除された形式に置換することによって、指定した文字列を変換します。

UnescapeDataString(String)

文字列をエスケープ解除された表現に変換します。

演算子

Equality(Uri, Uri)

2 つの Uri インスタンスの値が同一かどうかを判断します。

Inequality(Uri, Uri)

2 つの Uri インスタンスの値が同一でないかどうかを判断します。

明示的なインターフェイスの実装

IFormattable.ToString(String, IFormatProvider)

指定された書式を使用して現在のインスタンスの値を書式設定します。

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

現在のインスタンスをシリアル化するために必要なデータを返します。

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

現在のインスタンスの値を、指定された文字数のスパンに書式設定しようとします。

適用対象

スレッド セーフ

のすべての Uri メンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。

こちらもご覧ください