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
- Наследование
- Атрибуты
- Реализации
Требования к 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: для ссылки на упакованные файлы и другие ресурсы, которые вы включили в состав пакета приложения, или ресурсы, которые иным образом связаны с установленным приложением:
- ms-appx: ссылается на локально упакованные файлы приложения.
- ms-appx-web: также ссылается на локально упакованные файлы приложения, но загружает их в веб-контексте. Это часто необходимо, если вы обращаетесь к ресурсам для использования WebView или пишете приложения HTML/JavaScript и запрашиваете с HTML-страницы. Дополнительные сведения см. в разделах Схемы URI или Ссылка на содержимое (HTML).
- ms-appdata : относится к файлам приложения, которые поступают из локальных, перемещаемых и временных папок данных приложения. Дополнительные сведения см. в разделах Схемы URI или Хранение и получение параметров и других данных приложения.
- ms-resource: относится к ресурсам приложения в системе управления ресурсами. Дополнительные сведения см. в разделе Локализация строк в манифесте пакета приложения и интерфейсе пользователя.
Каждая из этих схем игнорирует многие компоненты универсального кода ресурса (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-преобразование. |