Uri クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
URI (Uniform Resource Identifier) のオブジェクト表現と URI の部分への簡単なアクセスを提供します。
public ref class Uri
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public ref class Uri : System::Runtime::Serialization::ISerializable
public class Uri
[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
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
[<System.Serializable>]
type Uri = class
inherit MarshalByRefObject
interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
interface ISerializable
type Uri = class
interface ISerializable
Public Class Uri
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
Public Class Uri
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
注釈
この API の詳細については、「Uri の 補足 API 解説」を参照してください。
コンストラクター
| 名前 | 説明 |
|---|---|
| Uri(SerializationInfo, StreamingContext) |
UriクラスとSerializationInfo クラスの指定したインスタンスから、StreamingContext クラスの新しいインスタンスを初期化します。 |
| Uri(String, Boolean) |
古い.
古い.
文字エスケープを明示的に制御して、指定した URI を使用して、 Uri クラスの新しいインスタンスを初期化します。 |
| 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 のアドレス部分から分離する文字を指定します。 このフィールドは読み取り専用です。 |
| UriSchemeFile |
URI がファイルへのポインターであることを指定します。 このフィールドは読み取り専用です。 |
| UriSchemeFtp |
ファイル転送プロトコル (FTP) を介して 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) を介してアクセスされることを指定します。 このフィールドは読み取り専用です。 |
プロパティ
| 名前 | 説明 |
|---|---|
| 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 インスタンスの等価性を比較します。 |
| 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) | |
| 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, UriKind, Uri) | |
| TryCreate(Uri, String, Uri) | |
| TryCreate(Uri, Uri, Uri) | |
| Unescape(String) |
古い.
古い.
エスケープ シーケンスをエスケープ解除された表現に置き換えて、指定した文字列を変換します。 |
| UnescapeDataString(String) |
文字列をエスケープされていない表現に変換します。 |
演算子
| 名前 | 説明 |
|---|---|
| Equality(Uri, Uri) |
2 つの Uri インスタンスの値が同じかどうかを判断します。 |
| Inequality(Uri, Uri) |
2 つの Uri インスタンスが同じ値を持たないかどうかを判断します。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
現在のインスタンスをシリアル化するために必要なデータを返します。 |
適用対象
スレッド セーフ
Uriのすべてのメンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。