Uri Classe

Définition

Définit un objet qui représente une valeur URI (Uniform Resource Identifier) et l’analyse en composants. L’objet Uri est utilisé par de nombreuses autres API Windows Runtime qui ne sont pas nécessairement limitées aux scénarios de navigateur web.

.NET Lors de la programmation avec .NET, ce type est masqué et les développeurs doivent utiliser System.Uri. Consultez la section Notes.

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
Héritage
Object Platform::Object IInspectable Uri
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Cet exemple crée un objet URI qui représente un URI (Uniform Resource Identifier) qui utilise le protocole http pour accéder à un site 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);

Cet exemple crée un URI qui utilise le protocole ms-appx pour accéder à un fichier image dans le package d’application.

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

Cet exemple crée un URI qui utilise le protocole ms-appdata pour accéder à un fichier dans le magasin de données d’application local de votre application.

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

Remarques

Important

Lors de la programmation avec .NET, cette classe est masquée et les développeurs doivent utiliser la classe System.Uri , qui utilise des règles RFC 3987 pour encoder et décoder l’URI (Uniform Resource Identifier). La classe Windows.Foundation.Uri n’encode pas les caractères non-ASCII dans l’URI (Uniform Resource Identifier), où le schéma fait référence à un chemin de fichier Windows (comme ms-appx:). Windows.Foundation.Uri interprète également l’encodage en pourcentage à l’aide de la page de codes actuelle de l’utilisateur.

Les membres disponibles de System.Uri sont similaires, mais différents des membres de Windows.Foundation.Uri, et certains des comportements de base décrits dans cette rubrique sont différents. Pour plus d’informations sur les différences d’encodage et les membres disponibles, consultez System.Uri (en particulier les remarques).

Voici une répartition des parties d’un exemple d’URI (Uniform Resource Identifier) :

scheme://username:password@host:port/path.extension ? Requête#Fragment

Par exemple :

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

Dans cet exemple :

  • le schéma est http
  • l’hôte est msdn.microsoft.com
  • domain is microsoft.com (un sous-ensemble de l’hôte)
  • extension est aspx
  • la requête est cs-save-lang=1&cs-lang=cpp
  • fragment est code-snippet-1

Notes

nom d’utilisateur :mot de passe@ qui précède l’hôte sont principalement pertinents pour l’URI (File Transfer Protocol) FTP ( Uniform Resource Identifier). Les URI FTP (File Transfer Protocol) ont une prise en charge limitée dans Windows Runtime. Consultez « Transfert de données en arrière-plan » (HTML ou XAML).

Important

Tous les schémas possibles ne sont pas utilisables par une application Windows Runtime. Notamment, le schéma de fichier: est bloqué. Il est possible de créer un objet URI qui utilise des schémas qu’une application Windows Runtime ne prend pas en charge, et vous êtes bloqué lorsque vous essayez d’appliquer cet URI en tant que valeur d’entrée pour un appel d’API, et non lors de la création de l’objet.

Schémas d’URI spécifiques à une application Windows Runtime

Windows Runtime a plusieurs schémas propres à une application Windows Runtime, qui font référence aux ressources qui font partie de l’application. En règle générale, ces schémas sont ce que vous pouvez utiliser à la place du schéma de fichier : pour faire référence aux fichiers empaquetés et autres ressources que vous avez inclus dans le cadre de votre package d’application, ou aux ressources qui sont autrement associées à une application installée :

Chacun de ces schémas ignore un grand nombre des composants d’un URI (Uniform Resource Identifier) qui sont destinés à d’autres schémas (par exemple, Requête et Fragment). En outre, certains composants sont explicitement interdits et entraînent le traitement de la valeur d’URI à l’aide de ces schémas comme une entrée non valide (par exemple, les valeurs UserName et Password dans un schéma d’URI ms-appx : le schéma d’URI invalidera un URI). Pour plus d’informations, voir Schémas d’URI.

Dans la plupart des cas, vous utilisez ces schémas avec trois barres obliques (exemple : ms-appx:///page.html), qui référence la racine de l’application actuelle, en utilisant l’application actuelle comme autorité. Les utilisations avec deux barres obliques sont possibles, mais peuvent nécessiter la spécification explicite du nom de l’autorité. Les utilisations avec deux barres obliques peuvent faire référence à une dépendance de package en tant qu’autorité ou à des emplacements relatifs au sein de l’application. Pour plus d’informations, voir Schémas d’URI.

URI absolus et relatifs

Au niveau du code, le Windows Runtime ne prend pas en charge l’URI relatif. Tous les objets URI que vous créez doivent représenter un URI (Uniform Resource Identifier) absolu. Les schémas répertoriés dans la section précédente sont en fait un URI (Uniform Resource Identifier) absolu, car l’hôte et l’autorité sont implicites pour chaque schéma et le reste du chemin d’accès est évalué sous cette autorité.

Lancement d’une application par schéma d’URI

Le schéma URI (Uniform Resource Identifier) d’une valeur URI peut être utilisé pour lancer d’autres applications associées à ce schéma particulier. Pour plus d’informations, consultez Lancer l’application par défaut pour un URI).

Constructeurs

Uri(String)

Initialise un nouvel objet URI à partir de la chaîne URI spécifiée. L’initialisation de l’URI analyse également la chaîne et remplit les propriétés d’URI qui représentent les composants URI (Uniform Resource Identifier).

Uri(String, String)

Initialise un nouvel URI en combinant un URI (Uniform Resource Identifier) de base et un URI relatif. L’initialisation de l’URI analyse également la chaîne combinée et remplit les propriétés d’URI qui représentent les composants URI (Uniform Resource Identifier).

Propriétés

AbsoluteCanonicalUri

Obtient une représentation entièrement canonique conforme au RFC de l’URI actuel.

AbsoluteUri

Obtient l’ENSEMBLE de l’URI non canonique (il n’est pas canonique, car il peut s’agir d’une IRI, conformément au comportement d’encodage Windows.Foundation.Uri ; voir remarques).

DisplayIri

Obtient les caractères Unicode décodés qui composent l’URI actuel.

DisplayUri

Obtient une représentation de l’URI (Uniform Resource Identifier) qui peut être utilisée à des fins d’affichage.

Domain

Obtient le composant de nom de domaine, y compris le domaine de niveau supérieur, à partir d’un URI (Uniform Resource Identifier).

Extension

Obtient l’extension de nom de fichier de la ressource référencée dans l’URI.

Fragment

Obtient le texte suivant un marqueur de fragment (#), y compris le marqueur de fragment lui-même.

Host

Obtient le nom de domaine complet.

Password

Obtient le composant mot de passe de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans cette instance URI.

Path

Obtient le composant chemin d’accès et nom de ressource de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans cette instance URI.

Port

Obtient le composant numéro de port de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans ce instance

Query

Obtient le composant de chaîne de requête de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans cette instance URI.

QueryParsed

Obtient une chaîne de requête URI (Uniform Resource Identifier) analysée.

RawUri

Obtient l’intégralité de la chaîne URI (Uniform Resource Identifier) d’origine utilisée pour construire cet objet URI , avant l’analyse et sans encodage appliqué.

SchemeName

Obtient le composant de nom de schéma de protocole de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans cet URI instance

Suspicious

Obtient une valeur qui indique si l’analyse a déterminé que l’URI (Uniform Resource Identifier) n’est pas correctement formé.

UserName

Obtient le composant de nom d’utilisateur de l’URI (Uniform Resource Identifier) tel qu’il est stocké dans cette instance URI.

Méthodes

CombineUri(String)

Ajoute l’URI (Uniform Resource Identifier) spécifié à l’URI actuel.

Equals(Uri)

Détermine si l’objet Uri spécifié est égal à l’objet Uri actuel.

EscapeComponent(String)

Convertit une chaîne URI (Uniform Resource Identifier) en sa représentation d’échappement.

ToString()

Obtient une représentation sous forme de chaîne canonique pour l’URI actuel.

UnescapeComponent(String)

Convertit la chaîne spécifiée en remplaçant toutes les séquences d'échappement par leur représentation sans séquence d'échappement.

S’applique à

Voir aussi