Uri Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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:
- ms-appx: verweist auf die lokal gepackten Dateien der App.
- ms-appx-web: verweist auch auf die lokal verpackten Dateien der App, lädt sie jedoch in einem Webkontext. Dies ist häufig erforderlich, wenn Sie auf Ressourcen zur Verwendung durch WebView zugreifen oder HTML-/JavaScript-Apps schreiben und von einer HTML-Seite anfordern. Weitere Informationen finden Sie unter URI-Schemas oder Referenzieren von Inhalten (HTML).
- ms-appdata: bezieht sich auf App-Dateien, die aus den lokalen, Roaming- und temporären Datenordnern der App stammen. Weitere Informationen finden Sie unter URI-Schemas oder Speichern und Abrufen von Einstellungen und anderen App-Daten.
- ms-resource: bezieht sich auf App-Ressourcen im Ressourcenverwaltungssystem. Weitere Informationen finden Sie unter Lokalisieren von Zeichenfolgen in der Benutzeroberfläche und im Paketmanifest der App.
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. |