Uri クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
- 実装
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 ランタイム アプリに固有のいくつかのスキームがあり、これらはアプリの一部である資産を指します。 一般に、これらのスキームは、ファイルの代わりに使用できるスキームです。スキームは、アプリ パッケージの一部として含めたパッケージ ファイルやその他の資産、またはインストールされているアプリに関連付けられている資産を参照します。
- ms-appx: アプリのローカル パッケージ ファイルを参照します。
- ms-appx-web: アプリのローカル パッケージ ファイルも参照しますが、Web コンテキストで読み込みます。 これは、多くの場合、 WebView で使用する資産にアクセスする場合、または HTML/JavaScript アプリを記述して HTML ページから要求する場合に必要です。 詳細については、「 URI スキーム 」または「 コンテンツを参照する方法 (HTML)」を参照してください。
- ms-appdata: アプリのローカル、ローミング、および一時データ フォルダーから取得されたアプリ ファイルを参照します。 詳細については、「 URI スキーム 」または「 設定とその他のアプリ データを格納および取得する」を参照してください。
- ms-resource: リソース管理システム内のアプリ リソースを参照します。 詳細については、「UI とアプリ パッケージ マニフェスト内の文字列をローカライズする」を参照してください。
これらの各スキームは、他のスキーム ( クエリ や フラグメントなど) を対象とした 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) | |
EscapeComponent(String) |
URI (Uniform Resource Identifier) 文字列をエスケープ表現に変換します。 |
ToString() |
現在の Uri の正規文字列表現を取得 します。 |
UnescapeComponent(String) |
エスケープ シーケンスをエスケープ解除された形式に置換することによって、指定した文字列を変換します。 |