Uri Klasse

Definition

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

.NETTO Beim Programmieren 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 Platform::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 URI (Uniform Resource Identifier) darstellt, der das HTTP-Protokoll für den Zugriff auf eine Website verwendet.

// 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 Decodieren von URI (Uniform Resource Identifier) verwendet. Die Windows.Foundation.Uri-Klasse codiert keine Nicht-ASCII-Zeichen in Uniform Resource Identifier (URI), wobei das Schema auf einen Windows-Dateipfad verweist (z. B. ms-appx:). Windows.Foundation.Uri interpretiert auch die Prozentcodierung mithilfe der aktuellen Codepage des Benutzers.

Die verfügbaren Member von System.Uri sind ähnlich, unterscheiden sich aber von den Mitgliedern von Windows.Foundation.Uri, und einige der in diesem Thema beschriebenen grundlegenden Verhaltensweisen unterscheiden sich. Weitere Informationen zu den Codierungsunterschieden und den verfügbaren Membern finden Sie unter System.Uri (insbesondere in den Hinweisen).

Im Folgenden finden Sie eine Aufschlüsselung der Teile eines Beispiels für den URI (Uniform Resource Identifier):

scheme://benutzername: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

username:password@, der dem Host vorangeht, sind hauptsächlich für ftp (File Transfer Protocol) Uniform Resource Identifier (URI) relevant. FTP-URIs (File Transfer Protocol) haben in Windows-Runtime nur eingeschränkte Unterstützung. Weitere Informationen finden Sie unter Übertragen von Daten im Hintergrund (HTML oder XAML).

Wichtig

Nicht alle möglichen Schemas können von einer Windows-Runtime-App verwendet werden. Insbesondere das Datei:-Schema ist blockiert. Es ist möglich, ein URI-Objekt zu erstellen, das Schemas verwendet, die von einer Windows-Runtime-App nicht unterstützt werden, 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 beziehen sich auf Ressourcen, die Teil der App sind. Im Allgemeinen können Sie diese Schemas anstelle der Datei verwenden: schema, um auf gepackte Dateien und andere Ressourcen zu verweisen, die Sie als Teil Ihres App-Pakets eingeschlossen haben, oder auf Ressourcen, die anderweitig einer installierten App zugeordnet sind:

Jedes dieser Schemas ignoriert viele komponenten eines URI (Uniform Resource Identifier), die für andere Schemas (z. B. Abfrage und Fragment) vorgesehen sind. Außerdem sind bestimmte Komponenten explizit nicht zulässig, und der URI-Wert, der diese Schemas verwendet, wird als ungültige Eingabe behandelt (z. B. UserName - und Password-Werte in einem ms-appx: Uri-Schema ungültig machen einen URI). 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 verweisen, wobei die aktuelle App als Autorität verwendet wird. Verwendungen mit zwei Schrägstrichen sind möglich, erfordern aber möglicherweise die explizite Angabe des Autoritätsnamens. Verwendungen mit zwei Schrägstrichen können auf eine Paketabhängigkeit als Autorität verweisen oder auf relative Standorte innerhalb der App verweisen. Weitere Informationen finden Sie unter URI-Schemas.

Absolute und relative URIs

Auf Codeebene unterstützt der Windows-Runtime den relativen URI (Uniform Resource Identifier) nicht. Alle von Ihnen erstellten URI-Objekte müssen einen absoluten URI (Uniform Resource Identifier) darstellen. Die im vorherigen Abschnitt aufgeführten Schemas sind tatsächlich absoluter URI (Uniform Resource Identifier), da der Host und die Autorität für jedes Schema implizit sind und der Rest des Pfads unter dieser Autorität ausgewertet wird.

Starten einer App nach 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 ZEICHENFOLGE (Uniform Resource Identifier, URI). Beim Initialisieren des URI wird auch die Zeichenfolge analysiert und die URI-Eigenschaften aufgefüllt, die URI-Komponenten (Uniform Resource Identifier) darstellen.

Uri(String, String)

Initialisiert einen neuen URI , indem ein Basis-URI (Uniform Resource Identifier) und ein relativer URI (Uniform Resource Identifier) kombiniert werden. Beim Initialisieren des URI wird auch die kombinierte Zeichenfolge analysiert und die URI-Eigenschaften aufgefüllt, die URI-Komponenten (Uniform Resource Identifier) darstellen.

Eigenschaften

AbsoluteCanonicalUri

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

AbsoluteUri

Ruft den gesamten, nicht kanonischen URI ab (Er ist nicht kanonisch, da es sich gemäß dem Codierungsverhalten von Windows.Foundation.Uri tatsächlich um eine IRI handeln könnte; siehe Hinweise).)

DisplayIri

Ruft die decodierten Unicode-Zeichen ab, aus denen der aktuelle URI besteht.

DisplayUri

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

Domain

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

Extension

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

Fragment

Ruft den Text ab, der einem Fragmentmarker (#) folgt, einschließlich des Fragmentmarkers selbst.

Host

Ruft den vollqualifizierten Domänennamen ab.

Password

Ruft die Kennwortkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance gespeichert ist.

Path

Ruft die Pfad- und Ressourcennamenkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance gespeichert sind.

Port

Ruft die Portnummerkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance

Query

Ruft die Abfragezeichenfolgenkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance gespeichert ist.

QueryParsed

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

RawUri

Ruft die gesamte ursprüngliche URI-Zeichenfolge (Uniform Resource Identifier) ab, die zum Erstellen dieses URI-Objekts vor der Analyse und ohne angewendete Codierung verwendet wurde.

SchemeName

Ruft die Protokollschemanamenkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance

Suspicious

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

UserName

Ruft die Benutzernamenkomponente des URI (Uniform Resource Identifier) ab, wie sie in diesem URI-instance gespeichert ist.

Methoden

CombineUri(String)

Fügt dem aktuellen URI den angegebenen URI (Uniform Resource Identifier) 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 ihre Escapedarstellung.

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:

Weitere Informationen