Поделиться через


Uri Класс

Определение

Определяет объект , представляющий значение универсального кода ресурса (URI), и анализирует его на компоненты. Объект URI используется многими другими API среда выполнения Windows, которые не обязательно ограничиваются сценариями веб-браузера.

.ЧИСТАЯ При программировании с помощью .NET этот тип скрыт, и разработчики должны использовать System.Uri. См. заметки.

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
Наследование
Object Platform::Object IInspectable Uri
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В этом примере создается объект URI, представляющий универсальный код ресурса (URI), использующий протокол HTTP для доступа к веб-сайту.

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

В этом примере создается универсальный код ресурса (URI), который использует протокол ms-appx для доступа к файлу изображения в пакете приложения.

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

В этом примере создается универсальный код ресурса (URI), который использует протокол ms-appdata для доступа к файлу в локальном хранилище данных приложения для вашего приложения.

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

Комментарии

Важно!

При программировании с помощью .NET этот класс скрыт, и разработчики должны использовать класс System.Uri , который использует правила RFC 3987 для кодирования и декодирования универсального кода ресурса (URI). Класс Windows.Foundation.Uri не кодирует символы, отличные от ASCII, в универсальном коде ресурса (URI), где схема ссылается на путь к файлу Windows (например, ms-appx:). Windows.Foundation.Uri также интерпретирует кодирование процентов с помощью текущей кодовой страницы пользователя.

Доступные члены System.Uri похожи, но отличаются от элементов Windows.Foundation.Uri, и некоторые основные поведения, описанные в этом разделе, отличаются. Дополнительные сведения о различиях в кодировке и доступных членах см. в разделе System.Uri (особенно в примечаниях).

Ниже приведена разбивка частей примера универсального кода ресурса (URI):

scheme://username:password@host:port/path.расширение? Запроса#Фрагмент

Пример:

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

В этом примере:

  • схема имеет значение http
  • host is is msdn.microsoft.com
  • domain is microsoft.com (подмножество узла)
  • расширение имеет значение aspx
  • запрос имеет значение cs-save-lang=1&cs-lang=cpp
  • фрагмент имеет значение code-snippet-1

Примечание

имя_пользователя:password@, предшествующее узлу , в основном относится к универсальному коду ресурса (URI) протокола FTP. URI ftp имеют ограниченную поддержку в среда выполнения Windows; см. раздел "Передача данных в фоновом режиме" (HTML или XAML).

Важно!

Приложение среда выполнения Windows может использовать не все возможные схемы. Примечательно, что файл: схема заблокирована. Можно создать объект Uri, использующий схемы, которые приложение среда выполнения Windows не поддерживает, и вы будете заблокированы при попытке применить этот URI в качестве входного значения для вызова API, а не при создании объекта.

Схемы URI, относящиеся к приложению среда выполнения Windows

среда выполнения Windows имеет несколько схем, уникальных для среда выполнения Windows приложения, и они относятся к ресурсам, которые являются частью приложения. Как правило, эти схемы можно использовать вместо схемы file: для ссылки на упакованные файлы и другие ресурсы, которые вы включили в состав пакета приложения, или ресурсы, которые иным образом связаны с установленным приложением:

Каждая из этих схем игнорирует многие компоненты универсального кода ресурса (URI), предназначенные для других схем (например, запросов и фрагментов). Кроме того, некоторые компоненты явно запрещены и приводят к тому, что значение URI, использующее эти схемы, будет рассматриваться как недопустимые входные данные (например, значения UserName и Password в схеме ms-appx: Uri будут недействительными). Подробнее см. в разделе Схемы URI.

В большинстве случаев эти схемы используются с тремя косыми чертами (например, ms-appx:///page.html), которая ссылается на корень текущего приложения, используя текущее приложение в качестве центра. Использование с двумя косыми чертами возможно, но может потребовать явного указания имени центра. Использование с двумя косыми чертами может ссылаться на зависимость пакета в качестве центра или на относительные расположения в приложении. Подробнее см. в разделе Схемы URI.

Абсолютные и относительные URI

На уровне кода среда выполнения Windows не поддерживает относительный универсальный код ресурса (URI). Все создаваемые объекты URI должны представлять абсолютный универсальный код ресурса (URI). Схемы, перечисленные в предыдущем разделе, фактически являются абсолютным универсальным кодом ресурса (URI), так как узел и центр неявны для каждой схемы, а остальная часть пути оценивается в соответствии с этим центром.

Запуск приложения по схеме URI

Схема универсального идентификатора ресурса (URI) значения URI может использоваться для запуска других приложений, связанных с этой конкретной схемой. Дополнительные сведения см. в статье Запуск приложения по умолчанию для универсального кода ресурса (URI).

Конструкторы

Uri(String)

Инициализирует новый объект URI из указанной строки универсального кода ресурса (URI). Инициализация URI также анализирует строку и заполняет свойства URI , представляющие компоненты универсального кода ресурса (URI).

Uri(String, String)

Инициализирует новый URI путем объединения базового универсального идентификатора ресурса (URI) и относительного универсального идентификатора ресурса (URI). Инициализация URI также анализирует объединенную строку и заполняет свойства URI , представляющие компоненты универсального кода ресурса (URI).

Свойства

AbsoluteCanonicalUri

Возвращает полностью каноническое представление текущего универсального кода ресурса (URI) в соответствии с RFC.

AbsoluteUri

Возвращает полный, неканонический URI (он неканонический, так как на самом деле это может быть IRI, согласно поведению кодирования Windows.Foundation.Uri ; см. примечания).

DisplayIri

Получает декодированные символы Юникода, составляющие текущий универсальный код ресурса (URI).

DisplayUri

Возвращает представление универсального кода ресурса (URI), который можно использовать для отображения.

Domain

Возвращает компонент доменного имени, включая домен верхнего уровня, из универсального идентификатора ресурса (URI).

Extension

Возвращает расширение имени файла ресурса, на который ссылается универсальный код ресурса (URI).

Fragment

Возвращает текст после маркера фрагмента (#), включая сам маркер фрагмента.

Host

Возвращает полное доменное имя.

Password

Возвращает компонент пароля универсального кода ресурса (URI), хранящийся в этом экземпляре URI .

Path

Возвращает путь и компонент имени ресурса универсального кода ресурса (URI), хранящийся в этом экземпляре URI .

Port

Возвращает компонент номера порта универсального кода ресурса (URI), хранящийся в этом экземпляре URI .

Query

Возвращает компонент строки запроса универсального кода ресурса (URI), хранящегося в этом экземпляре URI .

QueryParsed

Возвращает проанализированную строку запроса универсального кода ресурса (URI).

RawUri

Возвращает всю исходную строку универсального кода ресурса (URI), используемую для создания этого объекта URI перед анализом и без применения кодировки.

SchemeName

Возвращает компонент имени схемы протокола универсального кода ресурса (URI), хранящийся в этом экземпляре URI .

Suspicious

Возвращает значение, указывающее, правильно ли сформирован универсальный код ресурса (URI) при синтаксическом анализе.

UserName

Возвращает компонент имени пользователя универсального кода ресурса (URI), хранящийся в этом экземпляре URI .

Методы

CombineUri(String)

Добавляет указанный универсальный код ресурса (URI) в текущий URI.

Equals(Uri)

Определяет, равен ли указанный объект URI текущему объекту Uri .

EscapeComponent(String)

Преобразует строку универсального кода ресурса (URI) в ее экранированное представление.

ToString()

Возвращает каноническое строковое представление для текущего URI.

UnescapeComponent(String)

Преобразует указанную строку, заменив все escape-последовательности их представлениями, к которым не было применено escape-преобразование.

Применяется к

См. также раздел