Uri クラス

定義

URI (Uniform Resource Identifier) のオブジェクト表現と URI の部分への簡単なアクセスを提供します。

public ref class Uri
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
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 : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
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 IEquatable<Uri>
    interface IFormattable
    interface ISpanFormattable
    interface ISerializable
type Uri = class
    interface ISerializable
type Uri = class
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
type Uri = class
    interface IFormattable
    interface ISpanFormattable
    interface IEquatable<Uri>
    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 IEquatable(Of Uri), ISerializable, ISpanFormattable
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
継承
Uri
継承
属性
実装

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

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

注釈

UNIFORM Resource Identifier (URI) は、イントラネットまたはインターネット上のアプリケーションで使用できるリソースのコンパクトな表現です。 Uri クラスは、解析、比較、結合など、URI を処理するためのプロパティとメソッドを定義します。 Uri クラスのプロパティは読み取り専用です。変更可能なオブジェクトを作成するには、UriBuilder クラスを使用します。

相対 URI ("/new/index.htm"など) は、基本 URI に対して展開して、絶対 URI になるようにする必要があります。 MakeRelativeUriメソッドは、必要に応じて絶対 URI を相対 URI に変換するために提供されます。

文字列がスキーム識別子を含む整形式 URI の場合、 Uri コンストラクターは URI 文字列をエスケープしません。

Uriプロパティは、エスケープエンコードで正規のデータ表現を返し、Unicode 値が 127 より大きいすべての文字は 16 進数に置き換えられます。 URI を正規形式で配置するために、 Uri コンストラクターは次の手順を実行します。

  • URI スキームを小文字に変換します。
  • ホスト名を小文字に変換します。
  • ホスト名が IPv6 アドレスの場合は、正規の IPv6 アドレスが使用されます。 ScopeId およびその他のオプションの IPv6 データが削除されます。
  • 既定のポート番号と空のポート番号を削除します。
  • file:// スキームのない暗黙的なファイル パス ("C:\my\file" など) を、file:// スキームを使用して明示的なファイル パスに変換します。
  • 予約目的を持たないエスケープ文字 (パーセントエンコードオクテットとも呼ばれます) はデコードされます (エスケープ解除とも呼ばれます)。 これらの予約されていない文字には、大文字と小文字 (%41-%5A と %61-%7A)、10 進数 (%30-%39)、ハイフン (%2D)、ピリオド (%2E)、アンダースコア (%5F)、チルダ (%7E) が含まれます。
  • /.//../などのシーケンス (シーケンスがエスケープされているかどうか) を圧縮して、階層 URI のパスを正規化します。 これらのシーケンスが圧縮されないスキームがあることに注意してください。
  • 階層 URI の場合、ホストがスラッシュ (/) で終了しない場合は、1 つが追加されます。
  • 既定では、URI 内の予約文字はすべて RFC 2396 に従ってエスケープされます。 この動作は、国際リソース識別子または国際ドメイン名の解析が有効になっている場合に、RFC 3986 および RFC 3987 に従って URI の予約文字がエスケープされる場合に変更されます。

一部のスキームのコンストラクターでの正規化の一環として、ドット セグメント (/.//../) が圧縮されます (つまり、削除されます)。 セグメントを圧縮 Uri スキームには、http、https、tcp、net.pipe、および net.tcp が含まれます。 その他のスキームでは、これらのシーケンスは圧縮されません。 次のコード スニペットは、実際の圧縮の外観を示しています。 エスケープされたシーケンスは、必要に応じてエスケープ解除されたうえで、圧縮されます。

var uri = new Uri("http://myUrl/../.."); // http scheme, unescaped
OR
var uri = new Uri("http://myUrl/%2E%2E/%2E%2E"); // http scheme, escaped
OR
var uri = new Uri("ftp://myUrl/../.."); // ftp scheme, unescaped
OR
var uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E"); // ftp scheme, escaped

Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");

このコードを実行すると、次のテキストのような出力が返されます。

AbsoluteUri: http://myurl/
PathAndQuery: /

Uri メソッドを使用して、ToString クラスの内容をエスケープ エンコードされた URI 参照から読み取り可能な URI 参照に変換できます。 ToString メソッドの出力では、一部の予約文字がエスケープされる可能性があることに注意してください。 これは、 ToStringによって返される値からの URI の明確な再構築をサポートするためです。

一部の URI には、フラグメント識別子またはクエリ、またはその両方が含まれます。 フラグメント識別子は、番号記号 (#)の後に続く任意のテキストであり、番号記号は含まれません。フラグメント テキストは、 Fragment プロパティに格納されます。 クエリ情報は、URI の疑問符 (?) に続くテキストです。クエリ テキストは、 Query プロパティに格納されます。

Note

URI クラスでは、IPv4 プロトコルのクワッド表記と IPv6 プロトコルのコロン 16 進数の両方での IP アドレスの使用がサポートされています。 http://[::1]のように、IPv6 アドレスは角かっこで囲んでください。

国際リソース識別子のサポート

Web アドレスは通常、非常に制限された文字セットで構成される URI を使用して表されます。

  • 英字の大文字と小文字の ASCII 文字。
  • 0 ~ 9 の数字。
  • 他の少数の ASCII シンボル。

URI の仕様は、インターネット エンジニアリング タスク フォース (IETF) によって公開されている RFC 2396、RFC 2732、RFC 3986、RFC 3987 に記載されています。

英語以外の言語を使用してリソースを識別し、非 ASCII 文字 (Unicode/ISO 10646 文字セットの文字) を許可する必要がある識別子は、国際リソース識別子 (IRI) と呼ばれます。 IRI の仕様は、IETF によって公開された RFC 3987 に記載されています。 IRI を使用すると、URL に Unicode 文字を含めることができます。 正規化と文字チェックは、RFC 3986 および RFC 3987 の最新の IRI 規則に従って行われます。

Uri クラスの IRI および IDN 処理は、System.Configuration.IriParsingElementSystem.Configuration.IdnElement、およびSystem.Configuration.UriSection構成設定クラスを使用して制御できます。 System.Configuration.IriParsingElement設定では、Uri クラスでの IRI 処理を有効または無効にします。 System.Configuration.IdnElement設定では、Uri クラスでの IDN 処理を有効または無効にします。

System.Configuration.IriParsingElementSystem.Configuration.IdnElementの構成設定は、最初のSystem.Uri クラスが構築されるときに 1 回読み取られます。 その後の構成設定の変更は無視されます。

System.GenericUriParser クラスも拡張され、IRI と IDN をサポートするカスタマイズ可能なパーサーを作成できます。 System.GenericUriParser オブジェクトの動作は、System.GenericUriParserOptions列挙で使用可能な値のビットごとの組み合わせをSystem.GenericUriParserコンストラクターに渡すことによって指定されます。 GenericUriParserOptions.IriParsing型は、パーサーが RFC 3987 で国際リソース識別子 (IRI) に指定されている解析規則をサポートすることを示します。

GenericUriParserOptions.Idn型は、パーサーがホスト名の国際化ドメイン名 (IDN) の解析をサポートしていることを示します。 .NET (Core) および .NET Framework 4.5 以降では、IDN が常に使用されます。 以前のバージョンでは、構成オプションによって IDN が使用されるかどうかが決まります。

暗黙的なファイル パスのサポート

Uri は、ローカル ファイル システム パスを表すためにも使用できます。 これらのパスは、file:// スキームで始まる URI で 明示的に 表し、file:// スキームを持たない URI では 暗黙的に 表すことができます。 具体的な例として、次の 2 つの URI はどちらも有効であり、同じファイル パスを表します。

Uri uri1 = new Uri("C:/test/path/file.txt") // Implicit file path.
Uri uri2 = new Uri("file:///C:/test/path/file.txt") // Explicit file path.

これらの暗黙的なファイル パスは URI 仕様に準拠していないため、可能な場合は避ける必要があります。 Unix ベースのシステムで .NET Core を使用する場合、絶対暗黙的なファイル パスが相対パスと 区別できないため 、暗黙的なファイル パスが特に問題になる可能性があります。 このような曖昧さが存在する場合、Uri は既定でパスを絶対 URI として解釈します。

セキュリティに関する考慮事項

セキュリティ上の懸念から、信頼できないソースから Uri インスタンスを受け取り、dontEscapetrue に設定する場合は、アプリケーションで注意が必要です。 IsWellFormedOriginalString メソッドを呼び出すことで、URI 文字列の有効性を確認できます。

信頼されていないユーザー入力を処理する場合は、そのプロパティを信頼する前に、新しく作成された Uri インスタンスに関する前提条件を確認します。 これは、次の方法で実行できます。

string userInput = ...;

Uri baseUri = new Uri("https://myWebsite/files/");

if (!Uri.TryCreate(baseUri, userInput, out Uri newUri))
{
    // Fail: invalid input.
}

if (!baseUri.IsBaseOf(newUri))
{
    // Fail: the Uri base has been modified - the created Uri is not rooted in the original directory.
}

この検証は、UNC パスを処理する場合など、 baseUriを変更するだけで、他の場合に使用できます。

Uri baseUri = new Uri(@"\\host\share\some\directory\name\");

UriUriBuilderの設計とセキュリティに関する考慮事項の詳細については、次の脅威モデルドキュメントを確認してください。

パフォーマンスに関する考慮事項

URI を含む Web.config ファイルを使用してアプリケーションを初期化する場合、URI のスキーム識別子が標準でない場合は、URI の処理に追加の時間が必要です。 このような場合は、URI が必要なときに、アプリケーションの影響を受ける部分を初期化します。開始時刻には初期化しません。

コンストラクター

名前 説明
Uri(SerializationInfo, StreamingContext)
古い.

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

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

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

Uri(String, UriCreationOptions)

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

Uri(String, UriKind)

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

Uri(String)

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

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

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

Uri(Uri, String)

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

Uri(Uri, Uri)

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

フィールド

名前 説明
SchemeDelimiter

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

UriSchemeData

URI (Uniform Resource Identifier) のオブジェクト表現と URI の部分への簡単なアクセスを提供します。

UriSchemeFile

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

UriSchemeFtp

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

UriSchemeFtps

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

UriSchemeGopher

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

UriSchemeHttp

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

UriSchemeHttps

セキュリティで保護されたハイパーテキスト転送プロトコル (HTTPS) を介して URI にアクセスすることを指定します。 このフィールドは読み取り専用です。

UriSchemeMailto

URI が電子メール アドレスであり、簡易メール トランスポート プロトコル (SMTP) を介してアクセスされることを指定します。 このフィールドは読み取り専用です。

UriSchemeNetPipe

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

UriSchemeNetTcp

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

UriSchemeNews

URI がインターネット ニュース グループであり、ネットワーク ニュース トランスポート プロトコル (NNTP) を介してアクセスされることを指定します。 このフィールドは読み取り専用です。

UriSchemeNntp

URI がインターネット ニュース グループであり、ネットワーク ニュース トランスポート プロトコル (NNTP) を介してアクセスされることを指定します。 このフィールドは読み取り専用です。

UriSchemeSftp

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

UriSchemeSsh

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

UriSchemeTelnet

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

UriSchemeWs

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

UriSchemeWss

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

プロパティ

名前 説明
AbsolutePath

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

AbsoluteUri

絶対 URI を取得します。

Authority

ドメイン ネーム システム (DNS) ホスト名または 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 インスタンスの等価性を比較します。

Equals(Uri)

2 つの Uri インスタンスの等価性を比較します。

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

パス コンポーネント内の安全でない文字または予約文字を 16 進数の文字表現に変換します。

EscapeDataString(ReadOnlySpan<Char>)

スパンをエスケープされた表現に変換します。

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)
Parse()
古い.
古い.
古い.

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

ToString()

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

TryCreate(String, UriCreationOptions, Uri)

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

TryCreate(String, UriKind, Uri)

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

TryCreate(Uri, String, Uri)

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

TryCreate(Uri, Uri, Uri)

指定した基本インスタンスと相対Uri インスタンスを使用して、新しいUriを作成します。

TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

スパンをエスケープされた表現に変換しようとします。

TryFormat(Span<Char>, Int32)

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

TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32)

スパンをエスケープされていない表現に変換しようとします。

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

エスケープ シーケンスをエスケープ解除された表現に置き換えて、指定した文字列を変換します。

UnescapeDataString(ReadOnlySpan<Char>)

スパンをエスケープされていない表現に変換します。

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のすべてのメンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。

こちらもご覧ください