Uri クラス

定義

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

public ref class Uri
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : 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
[<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
Inherits MarshalByRefObject
Implements ISerializable
継承
Uri
継承
属性
実装

次の例では、クラスのインスタンスを Uri 作成し、それを使用してインスタンスを WebRequest 作成します。

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

WebRequest wr = WebRequest.Create(contoso);
let contoso = Uri "http://www.contoso.com/"

let wr = WebRequest.Create contoso
Dim siteUri As New Uri("http://www.contoso.com/")
        
Dim wr As WebRequest = WebRequest.Create(siteUri)

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

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

注釈

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

相対 URI ("/new/index.htm" など) は、基本 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 に従ってエスケープされます。 この動作は、国際リソース識別子または国際ドメイン名解析が有効になっている場合に変更されます。その場合、URI の予約文字は RFC 3986 および RFC 3987 に従ってエスケープされます。

一部のスキームのコンストラクターでの正規化の一環として、ドット セグメントと空のセグメント (、/../および//) が圧縮されます (/./つまり、削除されます)。 セグメントを圧縮する 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 参照から読み取り可能な URI 参照にクラスの内容 UriToString 変換できます。 一部の予約文字は、メソッドの ToString 出力で引き続きエスケープされる可能性があることに注意してください。 これは、によって返される値からの URI の明確な再構築をサポートするため ToStringです。

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

バージョン 1.1 .NET Framework、コンストラクターに指定された文字列に不明なスキームと "c:\"が含まれている場合、Uri クラスはコロンの後に "//" を挿入します。 たとえば、URI xyz:c:\abcxyz://c:/abc. .NET Framework バージョン 2.0 では、この動作が削除され、例の文字列が xyz:c:/abc.

注意

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

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

通常、Web アドレスは、非常に制限された文字セットで構成される一様なリソース識別子を使用して表されます。

  • 英文字の大文字と小文字の ASCII 文字。

  • 0 から 9 の数字。

  • その他の少数の ASCII シンボル。

URI の仕様は、インターネット技術タスク フォース (IETF) によって発行された RFC 2396、RFC 2732、RFC 3986、RFC 3987 に記載されています。

インターネットの成長により、英語以外の言語を使用するリソースを識別する必要性が高まっています。 このニーズに対応し、非 ASCII 文字 (Unicode/ISO 10646 の文字セット内の文字) を許可する識別子が、International Resource Identifier (IRI) として知られています。 IRI の仕様は、IETF によって発行された RFC 3987 で規定されています。 IRI を使用すると、URL に Unicode 文字を含めることができます。

既存のUriクラスは、RFC 3987 に基づく IRI サポートを提供するために、.NET Framework v3.5、3.0 SP1、および 2.0 SP1 で拡張されました。 バージョン 4.5 より前の.NET Frameworkバージョンのユーザーは、特に IRI を有効にしない限り、.NET Framework 2.0 の動作からの変更は表示されません。 これにより、以前のバージョンの.NET Frameworkとのアプリケーションの互換性が確保されます。

.NET Framework 4.5 以降のバージョンでは、IRI は常に有効になっており、構成オプションを使用して変更することはできません。 .NET Framework 4.5 より前のバージョンの .NET Framework バージョンで IRI のサポートを有効にするには、machine.config または app.config ファイルで構成オプションを設定します。 国際化ドメイン名 (IDN) の解析をドメイン名に適用するかどうか、および IRI 解析規則を適用すべきかどうかを指定します。 次に例を示します。

<configuration>
  <uri>
    <idn enabled="All" />
    <iriParsing enabled="true" />
  </uri>
</configuration>

IDN を有効にすると、ドメイン名内のすべての Unicode ラベルが、その Punycode に相当するものに変換されます。 Punycode 名には ASCII 文字のみが含まれ、常に xn-- プレフィックスで始まります。 この理由は、ほとんどの DNS サーバーは ASCII 文字しかサポートしていないため、インターネットで既存の DNS サーバーをサポートするためです (RFC 3940 を参照)。

IRI と IDN を有効にすると、Uri.DnsSafeHost プロパティの値に影響します。 IRI と IDN を有効にすると、EqualsOriginalStringGetComponents、および IsWellFormedOriginalString メソッドの動作を変更することもできます。

IDN には、使用する DNS サーバーに応じて、次の 3 つの値を指定できます。

  • idn enabled = All

    この値は、Unicode のドメイン名があれば、それを等価の Punycode (IDN 名) に変換します。

  • idn enabled = AllExceptIntranet

    この値は、ローカル イントラネット上にないすべての Unicode ドメイン名を、等価の Punycode (IDN 名) を使用するように変換します。 このように、ローカルなイントラネットで国際名を処理する場合、このイントラネットで使用する DNS サーバーは Unicode 名の解決をサポートしている必要があります。

  • idn enabled = None

    この値は、どの Unicode のドメイン名も、Punycode を使用するように変換しません。 これは、.NET Framework 2.0 の動作と一貫した既定値です。

IRI 解析が有効になっている (iriParsing が有効 = true) 場合、正規化と文字チェックは RFC 3986 および RFC 3987 の最新の IRI 規則に従って行われます。 IRI 解析を無効にすると、RFC 2396 および RFC 2732 (IPv6 リテラルの場合) に従って正規化と文字チェックが実行されます。 バージョン 4.5 より前のバージョンの.NET Frameworkでは、既定値は false. .NET Framework 4.5 以降、.NET Core、および .NET 5 以降では、既定値は true、IRI 解析の有効な状態は 、.config ファイルの設定では変更できません。

クラス内の Uri IRI および IDN 処理は、構成設定クラス、およびSystem.Configuration.UriSection構成設定クラスをSystem.Configuration.IriParsingElementSystem.Configuration.IdnElement使用して制御することもできます。 System.Configuration.IriParsingElement 設定は、Uri クラスでの IRI 処理を有効または無効にします。 System.Configuration.IdnElement 設定は、Uri クラスでの IDN 処理を有効または無効にします。 System.Configuration.IriParsingElement 設定も間接的に IDN を制御します。 IDN 処理を可能にするためには、IRI 処理を有効にする必要があります。 IRI 処理が無効になっている場合、IDN 処理は既定の設定に設定されます。既定の設定では、互換性のために .NET Framework 2.0 の動作が使用され、IDN 名は使用されません。

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

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

この型は GenericUriParserOptions.Idn 、パーサーがホスト名の国際化ドメイン名 (IDN) 解析をサポートしていることを示します。 .NET 5 以降のバージョン (.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 として解釈します。

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

セキュリティ上の問題があるため、信頼されていないソースdontEscapeからインスタンスをUri受け入れ、コンストラクターに設定する場合は、アプリケーションで注意するtrue必要があります。 メソッドを呼び出すことで、URI 文字列の有効性を IsWellFormedOriginalString 確認できます。

信頼されていないユーザー入力を処理する場合は、そのプロパティを信頼する前に、新しく作成 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\");

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

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

コンストラクター

Uri(SerializationInfo, StreamingContext)

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

Uri(String)

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

Uri(String, Boolean)
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

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

Uri(String, UriCreationOptions)

指定した URI と追加UriCreationOptionsUri 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

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

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

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

UriSchemeTelnet

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

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インスタンスを使用して新しいUriインスタンスを作成しますUriCreationOptions

TryCreate(String, UriKind, Uri)

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

TryCreate(Uri, String, Uri)

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

TryCreate(Uri, Uri, Uri)

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

Unescape(String)
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

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

UnescapeDataString(String)

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

演算子

Equality(Uri, Uri)

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

Inequality(Uri, Uri)

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

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

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

適用対象

スレッド セーフ

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

こちらもご覧ください