Uri Klasse

Definition

Definiert ein Objekt, das einen URI-Wert (Uniform Resource Identifier) darstellt, und analysiert es in Komponenten. Das Uri-Objekt wird von vielen anderen Windows-Runtime APIs verwendet, die nicht unbedingt auf Webbrowserszenarien beschränkt sind.

.NET Bei der Programmierung mit .NET ist dieser Typ ausgeblendet, und Entwickler sollten System.Uri verwenden. Siehe Hinweise.

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
Vererbung
Object IInspectable Uri
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

In diesem Beispiel wird ein Uri-Objekt erstellt, das einen Uniform Resource Identifier (URI) darstellt, der das http-Protokoll verwendet, um auf eine Website zuzugreifen.

// 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);

In diesem Beispiel wird ein Uri erstellt, der das ms-appx-Protokoll verwendet, um auf eine Bilddatei im App-Paket zuzugreifen.

// 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);

In diesem Beispiel wird ein Uri erstellt, der das ms-appdata-Protokoll verwendet, um auf eine Datei im lokalen App-Datenspeicher für Ihre App zuzugreifen.

// 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);

Hinweise

Wichtig

Bei der Programmierung mit .NET ist diese Klasse ausgeblendet und Entwickler sollten die System.Uri-Klasse verwenden, die RFC 3987-Regeln zum Codieren und Decodierung der Uniform Resource Identifier (URI) verwendet. Die Windows.Foundation.Uri-Klasse codiert keine Nicht-ASCII-Zeichen in Uniform Resource Identifier (URI), in der das Schema auf einen Windows-Dateipfad (z. B. ms-appx:) verweist. Windows.Foundation.Uri interpretiert auch die Prozentcodierung mithilfe der aktuellen Codeseite des Benutzers.

Die verfügbaren Mitglieder von System.Uri sind ähnlich, aber anders als die Mitglieder von Windows.Foundation.Uri und einige der in diesem Thema beschriebenen grundlegenden Verhaltensweisen sind unterschiedlich. Weitere Informationen zu den Codierungsunterschieden und den Mitgliedern finden Sie unter System.Uri (insbesondere die Hinweise).

Nachfolgend sehen Sie eine Aufschlüsselung der Teile eines Beispiels für uniform Resource Identifier (URI):

schema://username:password@host:port/path. Erweiterung? Abfrage#Fragment

Beispiel:

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

In diesem Beispiel:

  • Schema ist http
  • host ist msdn.microsoft.com
  • Domäne ist microsoft.com (eine Teilmenge des Hosts)
  • Erweiterung ist aspx
  • Abfrage ist cs-save-lang=1&cs-lang=cpp
  • Fragment ist code-snippet-1

Hinweis

Benutzername:password@ vor dem Host sind hauptsächlich für file Transfer Protocol (FTP) Uniform Resource Identifier (URI) relevant. Dateiübertragungsprotokoll-URIs (FTP) haben eingeschränkte Unterstützung in Windows-Runtime; siehe "Übertragen von Daten im Hintergrund" (HTML oder XAML).

Wichtig

Nicht alle möglichen Schemas können von einer Windows-Runtime-App verwendet werden. Insbesondere die Datei: Schema wird blockiert. Es ist möglich, ein Uri-Objekt zu erstellen, das Schemas verwendet, die eine Windows-Runtime-App nicht unterstützt, und Sie werden blockiert, wenn Sie versuchen, diesen Uri als Eingabewert für einen API-Aufruf anzuwenden, nicht beim Erstellen des Objekts.

URI-Schemas, die für eine Windows-Runtime-App spezifisch sind

Windows-Runtime verfügt über mehrere Schemas, die für eine Windows-Runtime-App eindeutig sind, und diese verweisen auf Ressourcen, die Teil der App sind. Im Allgemeinen können Sie diese Schemas anstelle der Datei verwenden: Schema, um auf verpackte Dateien und andere Ressourcen zu verweisen, die Sie als Teil Ihres App-Pakets enthalten haben, oder Ressourcen, die andernfalls einer installierten App zugeordnet sind:

Jede dieser Schemas ignoriert viele der Komponententeile eines Uniform Resource Identifier (URI), die für andere Schemas vorgesehen sind (z. B. Abfrage und Fragment). Außerdem werden bestimmte Komponenten explizit nicht zugelassen und führen dazu, dass der Uri-Wert mithilfe dieser Schemas als ungültige Eingabe behandelt werden soll (z. B. Benutzername - und Kennwortwerte in einem ms-appx:Uri-Schema wird einen Uri ungültig). Weitere Informationen finden Sie unter URI-Schemas.

In den meisten Fällen verwenden Sie diese Schemas mit drei Schrägstrichen (Beispiel: ms-appx:///page.html), die auf den Stamm der aktuellen App verweist, wobei die aktuelle App als Autorität verwendet wird. Verwendungen mit zwei Schrägstrichen sind möglich, müssen jedoch den Autoritätsnamen explizit angeben. Verwendungen mit zwei Schrägstrichen können auf eine Paketabhängigkeit als Behörde verweisen oder auf relative Speicherorte innerhalb der App verweisen. Weitere Informationen finden Sie unter URI-Schemas.

Absolute und relative URIs

Auf Codeebene unterstützt die Windows-Runtime keinen relativen Uniform Resource Identifier (URI). Alle Uri-Objekte, die Sie erstellen, müssen einen absoluten Uniform Resource Identifier (URI) darstellen. Die im vorherigen Abschnitt aufgeführten Schemas sind tatsächlich absolute Uniform Resource Identifier (URI), da der Host und die Autorität für jedes Schema implizit sind und der rest des Pfads unter dieser Behörde ausgewertet wird.

Starten einer App durch URI-Schema

Das URI-Schema (Uniform Resource Identifier) eines Uri-Werts kann verwendet werden, um andere Apps zu starten, die diesem bestimmten Schema zugeordnet sind. Weitere Informationen finden Sie unter Starten der Standard-App für einen URI.

Konstruktoren

Uri(String)

Initialisiert ein neues Uri-Objekt aus der angegebenen URI-Zeichenfolge (Uniform Resource Identifier, URI). Die Initialisierung des Uri analysiert auch die Zeichenfolge und füllt die Uri-Eigenschaften auf, die Uniform Resource Identifier (URI) -Komponenten darstellen.

Uri(String, String)

Initialisiert einen neuen Uri , indem er einen Basis-Uniform Resource Identifier (URI) und einen relativen Uniform Resource Identifier (URI) kombiniert. Die Initialisierung des Uri analysiert auch die kombinierte Zeichenfolge und füllt die Uri-Eigenschaften auf, die Uniform Resource Identifier (URI) -Komponenten darstellen.

Eigenschaften

AbsoluteCanonicalUri

Ruft eine vollständig kanonische RFC-kompatible Darstellung des aktuellen URI ab.

AbsoluteUri

Ruft den gesamten, nicht kanonischen URI (Es ist nicht kanonisch, da es möglicherweise ein IRI sein könnte, je nach Windows.Foundation.Uri-Codierungsverhalten ; siehe Hinweise.).

DisplayIri

Ruft die decodierten Unicode-Zeichen ab, die den aktuellen URI bilden.

DisplayUri

Ruft eine Darstellung des Uniform Resource Identifier (URI) ab, die für Anzeigezwecke verwendet werden können.

Domain

Ruft die Domänennamenkomponente ab, einschließlich der Domäne auf oberster Ebene, aus einem Uniform Resource Identifier (URI).

Extension

Ruft die Dateinamenerweiterung der Ressource ab, auf die im Uri verwiesen wird.

Fragment

Ruft den Text nach einer Fragmentmarkierung (#) ab, einschließlich der Fragmentmarkierung selbst.

Host

Ruft den vollqualifizierten Domänennamen ab.

Password

Ruft die Kennwortkomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert.

Path

Ruft die Pfad- und Ressourcennamenkomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert.

Port

Ruft die Portnummerkomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert

Query

Ruft die Abfragezeichenfolgenkomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert.

QueryParsed

Ruft eine analysierte URI-Abfragezeichenfolge (Uniform Resource Identifier) ab.

RawUri

Ruft die gesamte ursprüngliche URI-Zeichenfolge (Uniform Resource Identifier, URI) ab, die verwendet wird, um dieses Uri-Objekt zu erstellen, bevor Sie analysiert werden und ohne Codierung angewendet werden.

SchemeName

Ruft die Protokollschemanamekomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert

Suspicious

Ruft einen Wert ab, der angibt, ob die Analyse bestimmt hat, dass der Uniform Resource Identifier (URI) nicht gut gebildet ist.

UserName

Ruft die Benutzernamenkomponente des Uniform Resource Identifier (URI) ab, wie in dieser Uri-Instanz gespeichert.

Methoden

CombineUri(String)

Fügt dem aktuellen Uri den angegebenen Uniform Resource Identifier ( URI) hinzu.

Equals(Uri)

Bestimmt, ob das angegebene Uri-Objekt gleich dem aktuellen Uri-Objekt ist.

EscapeComponent(String)

Konvertiert eine URI-Zeichenfolge (Uniform Resource Identifier) in die escaped-Darstellung.

ToString()

Ruft eine kanonische Zeichenfolgendarstellung für den aktuellen Uri ab.

UnescapeComponent(String)

Konvertiert die angegebene Zeichenfolge, indem alle Escapesequenzen durch die entsprechende Darstellung ohne Escapezeichen ersetzt werden.

Gilt für:

Siehe auch