Condividi tramite


Uri Classe

Definizione

Definisce un oggetto che rappresenta un valore URI (Uniform Resource Identifier) e lo analizza nei componenti. L'oggetto Uri viene usato da molte altre API Windows Runtime che non sono necessariamente limitate agli scenari del Web browser.

.NET Quando si programma con .NET, questo tipo è nascosto e gli sviluppatori devono usare System.Uri. Vedere la sezione Osservazioni.

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
Ereditarietà
Object Platform::Object IInspectable Uri
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

In questo esempio viene creato un oggetto Uri che rappresenta un URI (Uniform Resource Identifier) che usa il protocollo http per accedere a un sito Web.

// 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 questo esempio viene creato un URI che usa il protocollo ms-appx per accedere a un file di immagine nel pacchetto dell'app.

// 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 questo esempio viene creato un URI che usa il protocollo ms-appdata per accedere a un file nell'archivio dati dell'app locale per l'app.

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

Commenti

Importante

Quando si esegue la programmazione con .NET, questa classe è nascosta e gli sviluppatori devono usare la classe System.Uri , che usa le regole RFC 3987 per codificare e decodificare l'URI (Uniform Resource Identifier). La classe Windows.Foundation.Uri non codifica per percentuale i caratteri non ASCII in Uniform Resource Identifier (URI) in cui lo schema fa riferimento a un percorso file di Windows (ad esempio ms-appx:). Windows.Foundation.Uri interpreta anche la codifica percentuale usando la tabella di codice corrente dell'utente.

I membri disponibili di System.Uri sono simili ma diversi dai membri di Windows.Foundation.Uri e alcuni dei comportamenti di base descritti in questo argomento sono diversi. Per altre informazioni sulle differenze di codifica e sui membri disponibili, vedere System.Uri (in particolare le osservazioni).

Ecco una suddivisione delle parti di un esempio di Uniform Resource Identifier (URI):

schema://username:password@host:port/path.estensione? Query#Frammento

Ad esempio:

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

Esempio:

  • schema è http
  • host è msdn.microsoft.com
  • dominio è microsoft.com (un subset di host)
  • estensione è aspx
  • query è cs-save-lang=1&cs-lang=cpp
  • frammento è code-snippet-1

Nota

username:password@ precedente l'host sono principalmente rilevanti per l'URI (Uniform Resource Identifier) di File Transfer Protocol (FTP). Gli URI FTP (File Transfer Protocol) hanno supporto limitato in Windows Runtime; vedere "Trasferimento di dati in background" (HTML o XAML).

Importante

Non tutti gli schemi possibili sono utilizzabili da un'app Windows Runtime. In particolare, il file: lo schema è bloccato. È possibile creare un oggetto Uri che usa schemi che un'app Windows Runtime non supporterà e quando si tenta di applicare l'URI come valore di input per una chiamata API, non quando si crea l'oggetto.

Schemi URI specifici di un'app Windows Runtime

Windows Runtime include diversi schemi univoci per un'app Windows Runtime e questi fanno riferimento agli asset che fanno parte dell'app. In genere, questi schemi sono quelli che è possibile usare anziché il file: schema, per fare riferimento a file in pacchetto e ad altri asset inclusi come parte del pacchetto dell'app o asset che altrimenti sono associati a un'app installata:

Ognuno di questi schemi ignora molte delle parti del componente di un URI (Uniform Resource Identifier) destinate ad altri schemi, ad esempio Query e Fragment. Inoltre, alcuni componenti non sono consentiti in modo esplicito e causano che il valore Uri usando questi schemi venga considerato come input non valido,ad esempio i valori UserName e Password in un schema ms-appx: lo schema URI invaliderà un URI. Per altre info, vedi schemi URI.

Nella maggior parte dei casi, si usano questi schemi con tre barre (ad esempio: ms-appx:///page.html), che fa riferimento alla radice dell'app corrente, usando l'app corrente come autorità. Gli usi con due barre sono possibili, ma potrebbero richiedere di specificare in modo esplicito il nome dell'autorità. Gli usi con due barre possono fare riferimento a una dipendenza del pacchetto come autorità o possono fare riferimento a posizioni relative all'interno dell'app. Per altre info, vedi schemi URI.

URI assoluti e relativi

A livello di codice, l'Windows Runtime non supporta l'URI (Uniform Resource Identifier) relativo. Tutti gli oggetti URI creati devono rappresentare un URI (Uniform Resource Identifier) assoluto. Gli schemi elencati nella sezione precedente sono effettivamente URI (Uniform Resource Identifier), perché l'host e l'autorità sono impliciti per ogni schema e il resto del percorso viene valutato in base a tale autorità.

Avvio di un'app per schema URI

Lo schema URI (Uniform Resource Identifier) di un valore URI può essere usato per avviare altre app associate a tale schema specifico. Per altre informazioni, vedere Avviare l'app predefinita per un URI.

Costruttori

Uri(String)

Inizializza un nuovo oggetto URI dalla stringa URI (Uniform Resource Identifier) specificata. Inizializzando l'URI analizza anche la stringa e popola le proprietà URI che rappresentano componenti URI (Uniform Resource Identifier).

Uri(String, String)

Inizializza un nuovo URI combinando un URI (Uniform Resource Identifier) di base e un URI (Uniform Resource Identifier) relativo. Inizializzando l'URI analizza anche la stringa combinata e popola le proprietà URI che rappresentano componenti URI (Uniform Resource Identifier).

Proprietà

AbsoluteCanonicalUri

Ottiene una rappresentazione conforme a RFC completamente canonica dell'URI corrente.

AbsoluteUri

Ottiene l'intero URI non canonico (non canonico perché potrebbe effettivamente essere un IRI, per il comportamento di codifica Windows.Foundation.Uri ; vedere Osservazioni.

DisplayIri

Ottiene i caratteri Unicode decodificati che costituiscono l'URI corrente.

DisplayUri

Ottiene una rappresentazione dell'URI (Uniform Resource Identifier) che può essere usato a scopo di visualizzazione.

Domain

Ottiene il componente nome di dominio, incluso il dominio di primo livello, da un URI (Uniform Resource Identifier).

Extension

Ottiene l'estensione del nome file della risorsa a cui viene fatto riferimento nell'URI.

Fragment

Ottiene il testo che segue un marcatore di frammento (#), incluso il marcatore di frammento stesso.

Host

Ottiene il nome di dominio completo.

Password

Ottiene il componente password dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI .

Path

Ottiene il percorso e il componente nome risorsa dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI .

Port

Ottiene il componente numero di porta dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI

Query

Ottiene il componente stringa di query dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI .

QueryParsed

Ottiene una stringa di query URI (Uniform Resource Identifier) analizzata.

RawUri

Ottiene l'intera stringa URI (Uniform Resource Identifier) originale come usato per costruire questo oggetto URI , prima dell'analisi e senza alcuna codifica applicata.

SchemeName

Ottiene il componente nome dello schema di protocollo dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI

Suspicious

Ottiene un valore che indica se l'analisi ha determinato che l'URI (Uniform Resource Identifier) non è ben formato.

UserName

Ottiene il componente nome utente dell'URI (Uniform Resource Identifier) archiviato in questa istanza di URI .

Metodi

CombineUri(String)

Aggiunge l'URI (Uniform Resource Identifier) specificato all'URI corrente.

Equals(Uri)

Determina se l'oggetto Uri specificato è uguale all'oggetto Uri corrente.

EscapeComponent(String)

Converte una stringa URI (Uniform Resource Identifier) nella relativa rappresentazione di escape.

ToString()

Ottiene una rappresentazione di stringa canonica per l'URI corrente.

UnescapeComponent(String)

Converte la stringa specificata sostituendo qualsiasi sequenza di escape con la relativa rappresentazione senza caratteri escape.

Si applica a

Vedi anche