Uri クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
type Uri = class
interface IFormattable
interface ISpanFormattable
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(ReadOnlySpan<Char>) |
URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。 |
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) |
MemberwiseClone(Boolean) |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
Parse() |
古い.
古い.
古い.
現在のインスタンスの URI を解析し、有効な URI で必要とされるすべての部分が含まれていることを確認します。 |
ToString() |
指定した Uri インスタンスの正規文字列表現を取得します。 |
TryCreate(String, UriCreationOptions, Uri) |
指定した String インスタンス と UriCreationOptionsを使用して新しい Uri を作成します。 |
TryCreate(String, UriKind, Uri) | |
TryCreate(Uri, String, Uri) | |
TryCreate(Uri, Uri, Uri) | |
TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。 |
TryFormat(Span<Char>, Int32) |
インスタンスの正規文字列表現 Uri を指定されたスパンに書式設定しようとします。 |
TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。 |
Unescape(String) |
古い.
古い.
古い.
エスケープ シーケンスをエスケープ解除された形式に置換することによって、指定した文字列を変換します。 |
UnescapeDataString(ReadOnlySpan<Char>) |
URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。 |
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 メンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。
こちらもご覧ください
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示