Share via


Uri クラス

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

この型のすべてのメンバの一覧については、Uri メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.Uri

<Serializable>
Public Class Uri   Inherits MarshalByRefObject   Implements ISerializable
[C#]
[Serializable]
public class Uri : MarshalByRefObject, ISerializable
[C++]
[Serializable]
public __gc class Uri : public MarshalByRefObject, ISerializable
[JScript]
public
   Serializable
class Uri extends MarshalByRefObject implements   ISerializable

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

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

Uri クラスは、"https://www.contoso.com/index.htm" などの絶対 URI だけを格納します。"/new/index.htm" などの相対 URI は、ベース URI を基準にして展開し、絶対 URI に変換する必要があります。 MakeRelative メソッドは、必要に応じて絶対 URI を相対 URI に変換するメソッドです。

エスケープ シーケンスが含まれるスキーム ID を含む整形式 URI 文字列の場合、 Uri コンストラクタではこの文字列をエスケープできません。このコンストラクタは、パーセント記号 (%) を含む相対 URI 文字列をエスケープします。

URI のプロパティは、正規データ形式をエスケープ エンコーディングで返します。このとき、127 より大きい ASCII 値の文字はすべて、それと等価の 16 進数値に置換されます。URI を正規形式で格納するため、 Uri コンストラクタは次に示すステップを実行します。

  • URI スキームを小文字に変換します。
  • ホスト名を小文字に変換します。
  • 既定のポート番号と空のポート番号を削除します。
  • "/" セグメントや "/test" セグメントのような余分なセグメントを URI から削除し、この URI を単純にします。

ToString メソッドを使用すると、 Uri クラスの内容をエスケープ エンコード URI 参照から判読可能な URI 参照へ変換できます。

一部の URI には、フラグメント識別子またはクエリが含まれています。フラグメント識別子とは、URI 上でシャープ記号 (#) の後に続く任意のテキストです。フラグメント識別子は Fragment プロパティに格納されています。クエリ情報とは、URI 上で疑問符 (?) の後に続く任意のテキストです。クエリ情報は Query プロパティに格納されています。クエリ情報とは、URI 上で疑問符 (?) の後に続く任意のテキストです。クエリ テキストは Query プロパティに格納されています。

メモ   URI クラスでは、IPv4 プロトコルのピリオド区切りの 10 進表記、および IPv6 プロトコルのコロン区切りの 16 進表記の、両方の IP アドレス形式を使用できます。なお、IPv6 アドレスの場合は、http://[::1] のように、角かっこで囲んでください。

.NET Compact Framework - Windows CE .NET プラットフォームに関する注意点: .NET Compact Framework では、file:// 形式で始まる URL の処理方法が完全版の .NET Framework とは異なります。file://myfile と相対的に指定すると、\\myfile として解決されます。file:///myfile ( 3 つのスラッシュ) を使用すると、ルート ディレクトリにある\myfile として解決されます。正常な操作を確保するには、絶対パス情報を指定してください。

使用例

Uri クラスのインスタンスを作成し、このインスタンスを使用して WebRequest を作成する例を次に示します。

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


[C#] 
Uri siteUri = new Uri("https://www.contoso.com/");
 
 WebRequest wr = WebRequest.Create(siteUri);


[C++] 
Uri* siteUri = new Uri(S"https://www.contoso.com/");
 
WebRequest* wr = WebRequest::Create(siteUri);


[JScript] 
var siteUri : Uri = new Uri("https://www.contoso.com/");
var wr : WebRequest = WebRequest.Create(siteUri);

必要条件

名前空間: System

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System (System.dll 内)

参照

Uri メンバ | System 名前空間 | UriBuilder