Uri クラス

定義

Uniform Resource Identifier (URI) 値を表す オブジェクトを定義し、それをコンポーネントに解析します。 Uri オブジェクトは、Web ブラウザーのシナリオに限定されるとは限らない他の多くのWindows ランタイム API によって使用されます。

。ネット .NET を使用してプログラミングする場合、この型は非表示になり、開発者は System.Uri を使用する必要があります。 「解説」を参照してください。

public ref class Uri sealed : IStringable
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Uri final : IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IUriRuntimeClassFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class Uri final : IStringable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Uri : IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IUriRuntimeClassFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Uri : IStringable
function Uri(baseUri, relativeUri)
Public NotInheritable Class Uri
Implements IStringable
継承
Object Platform::Object IInspectable Uri
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

この例では、 http プロトコルを使用して Web サイトにアクセスする URI (Uniform Resource Identifier) を表す Uri オブジェクトを作成します。

// The URI string
var uriToLaunch = "http://www.bing.com";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriToLaunch);
// The URI string.
std::wstring uriToLaunch{ L"http://www.bing.com" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriToLaunch };
// The URI string
var uriToLaunch = L"http://www.bing.com";

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriToLaunch);

この例では、 ms-appx プロトコルを使用してアプリ パッケージ内のイメージ ファイルにアクセスする Uri を作成します。

// The URI string
var uriImage = "ms-appx:///images/SecondaryTileDefault-sdk.png";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriImage);
// The URI string.
std::wstring uriImage{ L"ms-appx:///images/SecondaryTileDefault-sdk.png" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriImage };
// The URI string
var uriImage = ;

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriImage);

この例では、 ms-appdata プロトコルを使用してアプリのローカル アプリ データ ストア内のファイルにアクセスする Uri を作成します。

// The URI string
var uriFile = "ms-appdata:///local/file.ext";

// Create a Uri object from the URI string
var uri = new Windows.Foundation.Uri(uriFile);
// The URI string.
std::wstring uriFile{ L"ms-appdata:///local/file.ext" };

// Create a Uri object from the URI string.
Windows::Foundation::Uri uri{ uriFile };
// The URI string
var uriFile = "ms-appdata:///local/file.ext";

// Create a Uri object from the URI string
auto uri = ref new Windows::Foundation::Uri(uriFile);

注釈

重要

.NET を使用してプログラミングする場合、このクラスは非表示になり、開発者は System.Uri クラスを使用する必要があります。このクラスでは、RFC 3987 ルールを使用して Uniform Resource Identifier (URI) をエンコードおよびデコードします。 Windows.Foundation.Uri クラスは、スキームが Windows ファイル パス (ms-appx: など) を参照する Uniform Resource Identifier (URI) では、ASCII 以外の文字をパーセントエンコードしません。 Windows.Foundation.Uri では、ユーザーの現在のコード ページを使用してパーセントエンコードも解釈されます。

System.Uri の使用可能なメンバーは似ていますが、Windows.Foundation.Uri のメンバーとは異なり、このトピックで説明する基本的な動作の一部は異なります。 エンコードの違いと使用可能なメンバーの詳細については、「 System.Uri (特に解説)」を参照してください。

Uniform Resource Identifier (URI) の例の部分の内訳を次に示します。

scheme://username:password@host:port/path.extension?クエリ#フラグメント

例:

http://msdn.microsoft.com/library/windows/apps/windows.foundation.uri.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1

次の点に注意してください。

  • スキーム は です http
  • host is msdn.microsoft.com
  • domain is microsoft.com ( ホストのサブセット)
  • 拡張機能 は です aspx
  • query is cs-save-lang=1&cs-lang=cpp
  • フラグメント は です code-snippet-1

注意

ホストの前の username:password@ は、主にファイル転送プロトコル (FTP) Uniform Resource Identifier (URI) に関連します。 ファイル転送プロトコル (FTP) URI では、Windows ランタイムでのサポートが制限されています。「バックグラウンドでデータを転送する」(HTML または XAML) を参照してください。

重要

使用可能なすべてのスキームがWindows ランタイム アプリで使用できるわけではありません。 特に、ファイル: スキームはブロックされています。 Windows ランタイム アプリでサポートされないスキームを使用する Uri オブジェクトを作成できます。また、その URI を API 呼び出しの入力値として適用しようとするとブロックされ、オブジェクトの作成時にはブロックされません。

Windows ランタイム アプリに固有の URI スキーム

Windows ランタイムには、Windows ランタイム アプリに固有のいくつかのスキームがあり、これらはアプリの一部である資産を指します。 一般に、これらのスキームは、ファイルの代わりに使用できるスキームです。スキームは、アプリ パッケージの一部として含めたパッケージ ファイルやその他の資産、またはインストールされているアプリに関連付けられている資産を参照します。

これらの各スキームは、他のスキーム ( クエリフラグメントなど) を対象とした Uniform Resource Identifier (URI) のコンポーネント部分の多くを無視します。 また、特定のコンポーネントは明示的に許可されておらず、これらのスキームを使用する Uri 値が無効な入力として扱われます (たとえば、ms-appx の UserName 値と Password 値: Uri スキームでは Uri が無効になります)。 詳しくは、「URI スキーム」 をご覧ください。

ほとんどの場合、現在のアプリのルートを参照する 3 つのスラッシュ (ms-appx:///page.html など) でこれらのスキームを使用し、現在のアプリを機関として使用します。 2 つのスラッシュを使用できますが、権限名を明示的に指定する必要がある場合があります。 2 つのスラッシュを使用した使用法は、パッケージの依存関係を機関として参照したり、アプリ内の相対的な場所を参照したりできます。 詳しくは、「URI スキーム」 をご覧ください。

絶対 URI と相対 URI

コード レベルでは、Windows ランタイムは相対 Uniform Resource Identifier (URI) をサポートしていません。 作成するすべての Uri オブジェクトは、絶対 Uniform Resource Identifier (URI) を表す必要があります。 前のセクションで示したスキームは、実際には絶対 Uniform Resource Identifier (URI) です。ホストと機関はスキームごとに暗黙的であり、パスの残りの部分はその権限で評価されるためです。

URI スキームによるアプリの起動

Uri 値の URI (Uniform Resource Identifier) スキームを使用して、その特定のスキームに関連付けられている他のアプリを起動できます。 詳細については、「URI の 既定のアプリを起動する」を参照してください。

コンストラクター

Uri(String)

指定した URI (Uniform Resource Identifier) 文字列から新しい Uri オブジェクトを初期化します。 URI を初期化すると、文字列も解析され、Uniform Resource Identifier (URI) コンポーネントを表す Uri プロパティが設定されます。

Uri(String, String)

ベースの Uniform Resource Identifier ( URI ) と相対 Uniform Resource Identifier (URI) を組み合わせて、新しい URI を初期化します。 Uri を初期化すると、結合された文字列も解析され、Uniform Resource Identifier (URI) コンポーネントを表す Uri プロパティが設定されます。

プロパティ

AbsoluteCanonicalUri

現在の URI の完全に正規の RFC 準拠表現を取得します。

AbsoluteUri

非正規 URI 全体を取得します ( Windows.Foundation.Uri エンコード動作に従って、実際には IRI である可能性があるため、非正規 URI です。「解説」を参照してください)。

DisplayIri

現在の URI を構成するデコードされた Unicode 文字を取得します。

DisplayUri

表示目的で使用できる Uniform Resource Identifier (URI) の表現を取得します。

Domain

Uniform Resource Identifier (URI) から、トップレベル ドメインを含むドメイン名コンポーネントを取得します。

Extension

Uri で参照されているリソースのファイル名拡張子を取得 します

Fragment

フラグメント マーカー自体を含む、フラグメント マーカー (#)の後のテキストを取得します。

Host

完全修飾ドメイン名を取得します。

Password

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のパスワード コンポーネント 取得します。

Path

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のパスとリソース名コンポーネント 取得します。

Port

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のポート番号コンポーネント 取得します

Query

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のクエリ文字列コンポーネント 取得します。

QueryParsed

解析された Uri (Uniform Resource Identifier) クエリ文字列を取得します。

RawUri

この Uri オブジェクトの構築に使用される元の URI (Uniform Resource Identifier) 文字列全体を、解析前に取得し、エンコードを適用せずに取得します。

SchemeName

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のプロトコル スキーム名コンポーネント 取得します

Suspicious

解析によって Uniform Resource Identifier (URI) が整形式ではないことが判断されたかどうかを示す値を取得します。

UserName

この Uri インスタンスに格納されている Uniform Resource Identifier (URI) のユーザー名コンポーネント 取得します。

メソッド

CombineUri(String)

指定した Uniform Resource Identifier (URI) を現在の Uri に追加 します

Equals(Uri)

指定した Uri オブジェクトが現在の Uri オブジェクトと等しいかどうかを判断します。

EscapeComponent(String)

URI (Uniform Resource Identifier) 文字列をエスケープ表現に変換します。

ToString()

現在の Uri の正規文字列表現を取得 します

UnescapeComponent(String)

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

適用対象

こちらもご覧ください