Uri Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет представление объекта универсального идентификатора ресурса (URI) и простого доступа к частям URI.
public ref class Uri
public ref class Uri : IEquatable<Uri ^>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : System::Runtime::Serialization::ISerializable
public ref class Uri : ISpanFormattable, System::Runtime::Serialization::ISerializable
public ref class Uri : MarshalByRefObject, System::Runtime::Serialization::ISerializable
public class Uri
public class Uri : IEquatable<Uri>, ISpanFormattable, System.Runtime.Serialization.ISerializable
public class Uri : System.Runtime.Serialization.ISerializable
public class Uri : ISpanFormattable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Uri : MarshalByRefObject, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
type Uri = class
interface IEquatable<Uri>
interface IFormattable
interface ISpanFormattable
interface ISerializable
type Uri = class
interface ISerializable
type Uri = class
interface ISpanFormattable
interface IFormattable
interface ISerializable
type Uri = class
interface IFormattable
interface ISpanFormattable
interface IEquatable<Uri>
interface ISerializable
[<System.Serializable>]
type Uri = class
inherit MarshalByRefObject
interface ISerializable
[<System.Serializable>]
[<System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))>]
type Uri = class
interface ISerializable
Public Class Uri
Public Class Uri
Implements IEquatable(Of Uri), ISerializable, ISpanFormattable
Public Class Uri
Implements ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
- Наследование
-
Uri
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается экземпляр Uri класса и он используется для выполнения запроса GET с HttpClientпомощью .
Uri siteUri = new Uri("http://www.contoso.com/");
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, siteUri);
HttpResponseMessage response = client.Send(request);
let siteUri = Uri "http://www.contoso.com/"
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
use client = new HttpClient ()
use request = new HttpRequestMessage (HttpMethod.Get, siteUri)
use response = client.Send request
Dim siteUri As New Uri("http://www.contoso.com/")
' HttpClient lifecycle management best practices:
' https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
Dim client As New HttpClient()
Dim request As New HttpRequestMessage(HttpMethod.Get, siteUri)
Dim response As HttpResponseMessage = client.Send(request)
В следующем фрагменте кода показаны примеры значений различных свойств класса.
Uri uri = new Uri("https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName");
Console.WriteLine($"AbsolutePath: {uri.AbsolutePath}");
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"DnsSafeHost: {uri.DnsSafeHost}");
Console.WriteLine($"Fragment: {uri.Fragment}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"HostNameType: {uri.HostNameType}");
Console.WriteLine($"IdnHost: {uri.IdnHost}");
Console.WriteLine($"IsAbsoluteUri: {uri.IsAbsoluteUri}");
Console.WriteLine($"IsDefaultPort: {uri.IsDefaultPort}");
Console.WriteLine($"IsFile: {uri.IsFile}");
Console.WriteLine($"IsLoopback: {uri.IsLoopback}");
Console.WriteLine($"IsUnc: {uri.IsUnc}");
Console.WriteLine($"LocalPath: {uri.LocalPath}");
Console.WriteLine($"OriginalString: {uri.OriginalString}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Query: {uri.Query}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Segments: {string.Join(", ", uri.Segments)}");
Console.WriteLine($"UserEscaped: {uri.UserEscaped}");
Console.WriteLine($"UserInfo: {uri.UserInfo}");
// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
let uri = Uri "https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName"
printfn $"AbsolutePath: {uri.AbsolutePath}"
printfn $"AbsoluteUri: {uri.AbsoluteUri}"
printfn $"DnsSafeHost: {uri.DnsSafeHost}"
printfn $"Fragment: {uri.Fragment}"
printfn $"Host: {uri.Host}"
printfn $"HostNameType: {uri.HostNameType}"
printfn $"IdnHost: {uri.IdnHost}"
printfn $"IsAbsoluteUri: {uri.IsAbsoluteUri}"
printfn $"IsDefaultPort: {uri.IsDefaultPort}"
printfn $"IsFile: {uri.IsFile}"
printfn $"IsLoopback: {uri.IsLoopback}"
printfn $"IsUnc: {uri.IsUnc}"
printfn $"LocalPath: {uri.LocalPath}"
printfn $"OriginalString: {uri.OriginalString}"
printfn $"PathAndQuery: {uri.PathAndQuery}"
printfn $"Port: {uri.Port}"
printfn $"Query: {uri.Query}"
printfn $"Scheme: {uri.Scheme}"
printfn $"""Segments: {String.Join(", ", uri.Segments)}"""
printfn $"UserEscaped: {uri.UserEscaped}"
printfn $"UserInfo: {uri.UserInfo}"
// AbsolutePath: /Home/Index.htm
// AbsoluteUri: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// DnsSafeHost: www.contoso.com
// Fragment: #FragmentName
// Host: www.contoso.com
// HostNameType: Dns
// IdnHost: www.contoso.com
// IsAbsoluteUri: True
// IsDefaultPort: False
// IsFile: False
// IsLoopback: False
// IsUnc: False
// LocalPath: /Home/Index.htm
// OriginalString: https://user:password@www.contoso.com:80/Home/Index.htm?q1=v1&q2=v2#FragmentName
// PathAndQuery: /Home/Index.htm?q1=v1&q2=v2
// Port: 80
// Query: ?q1=v1&q2=v2
// Scheme: https
// Segments: /, Home/, Index.htm
// UserEscaped: False
// UserInfo: user:password
Комментарии
Универсальный идентификатор ресурса (URI) — это компактное представление ресурса, доступного приложению в интрасети или Интернете. Класс Uri определяет свойства и методы обработки URI, включая синтаксический анализ, сравнение и объединение. Uri Свойства класса доступны только для чтения; для создания изменяемого объекта используйте UriBuilder класс.
Относительные URI (например, "/new/index.htm") должны быть расширены относительно базового URI, чтобы они были абсолютными. Этот MakeRelativeUri метод предоставляется для преобразования абсолютных URI в относительные URI при необходимости.
Конструкторы Uri не экранируют строки URI, если строка является корректно сформированным URI, включая схему.
Свойства Uri возвращают каноническое представление данных в escape-кодировке, при этом все символы со значениями Юникода больше 127 заменены шестнадцатеричными эквивалентами. Чтобы поместить универсальный код ресурса (URI) в каноническую форму, Uri конструктор выполняет следующие действия:
- Преобразует схему URI в нижний регистр.
- Преобразует имя узла в нижний регистр.
- Если имя узла является IPv6-адресом, используется канонический IPv6-адрес. ScopeId и другие необязательные данные IPv6 удаляются.
- Удаляет номера портов по умолчанию и пустые.
- Преобразует неявные пути к файлам без схемы file:// (например, "C:\my\file") в явные пути к файлам с помощью схемы file://.
- Экранированные символы (также известные как октеты в процентном кодировании), которые не имеют зарезервированного назначения, декодируются (также известные как расэкранированные). К этим незарезервируемым символам относятся прописные и строчные буквы (%41-%5A и %61-%7A), десятичные цифры (%30-%39), дефис (%2D), период (%2E), подчеркивание (%5F) и тильда (%7E).
- Канонизирует путь для иерархических URI путем сжатия последовательностей, таких как
/./и/../(независимо от того, экранируется ли последовательность). Обратите внимание, что существуют некоторые схемы, для которых эти последовательности не сжимаются. - Если для иерархических URI хост не заканчивается косой чертой (/), она добавляется.
- По умолчанию все зарезервированные символы в URI экранируются в соответствии с RFC 2396. Это поведение изменяется, если включена функция синтаксического анализа международных идентификаторов ресурсов или международного доменного имени, в этом случае зарезервированные символы в URI экранируются в соответствии с RFC 3986 и RFC 3987.
В рамках канонизации в конструкторе для некоторых схем, точечные сегменты (/./ и /../) сжимаются (другими словами, удаляются). Схемы, для которых Uri уплотняет сегменты, включают http, https, tcp, net.pipe и net.tcp. Для некоторых других схем эти последовательности не сжимаются. В следующем фрагменте кода показано, как выглядит сжатие на практике. Экранированные последовательности при необходимости преобразуются обратно, а затем сжимаются.
var uri = new Uri("http://myUrl/../.."); // http scheme, unescaped
OR
var uri = new Uri("http://myUrl/%2E%2E/%2E%2E"); // http scheme, escaped
OR
var uri = new Uri("ftp://myUrl/../.."); // ftp scheme, unescaped
OR
var uri = new Uri("ftp://myUrl/%2E%2E/%2E%2E"); // ftp scheme, escaped
Console.WriteLine($"AbsoluteUri: {uri.AbsoluteUri}");
Console.WriteLine($"PathAndQuery: {uri.PathAndQuery}");
При выполнении этого кода он возвращает выходные данные, аналогичные следующему тексту.
AbsoluteUri: http://myurl/
PathAndQuery: /
Вы можете преобразовать содержимое Uri класса из ссылки на URI в кодированном escape-коде в ссылку на доступный для чтения универсальный код ресурса (URI) с помощью ToString метода. Обратите внимание, что некоторые зарезервированные символы по-прежнему могут быть экранированы в выходных данных ToString метода. Это позволяет обеспечить однозначное восстановление универсального кода ресурса (URI) из возвращаемого ToStringзначения.
Некоторые URI включают идентификатор фрагмента или запрос или оба. Идентификатор фрагмента — это любой текст, который следует знаку номера (#), не включая знак номера; Текст фрагмента хранится в свойстве Fragment . Сведения о запросе — это любой текст, следующий за вопросительным знаком (?) в URI; Текст запроса хранится в свойстве Query .
Замечание
Класс URI поддерживает использование IP-адресов в четырёхточечной нотации для протокола IPv4 и двоеточечно-шестнадцатеричной нотации для протокола IPv6. Не забудьте заключить адрес IPv6 в квадратные скобки, как в http://[::1].
Поддержка международного идентификатора ресурса
Веб-адреса обычно выражаются с помощью URI, состоящих из очень ограниченного набора символов:
- Буквы ASCII верхнего и нижнего регистра из английского алфавита.
- Цифры от 0 до 9.
- Небольшое количество других символов ASCII.
Спецификации для URI описаны в RFC 2396, RFC 2732, RFC 3986 и RFC 3987, опубликованных Инженерным советом Интернета (IETF).
Идентификаторы, которые упрощают идентификацию ресурсов с помощью языков, отличных от английского, и разрешают символы, отличные от ASCII (символы в наборе символов Юникода или ISO 10646), называются международными идентификаторами ресурсов (IRIs). Спецификации irIs описаны в RFC 3987, опубликованном IETF. Использование IRIs позволяет URL-адресу содержать символы Юникода. Нормализация и проверка символов выполняются в соответствии с последними правилами IRI в RFC 3986 и RFC 3987.
Обработку IRI и IDN в Uri классе можно контролировать с помощью System.Configuration.IriParsingElementSystem.Configuration.IdnElementклассов параметров конфигурации и System.Configuration.UriSection параметров конфигурации. Параметр System.Configuration.IriParsingElement включает или отключает обработку IRI в классе Uri. Параметр System.Configuration.IdnElement включает или отключает обработку idN в Uri классе.
Параметры конфигурации для System.Configuration.IriParsingElement и System.Configuration.IdnElement считываются один раз при создании первого экземпляра класса System.Uri. Изменения параметров конфигурации после этого времени игнорируются.
Класс System.GenericUriParser также был расширен, чтобы разрешить создание настраиваемого средства синтаксического анализа, поддерживающего IRI и IDN. Поведение System.GenericUriParser объекта задается путем передачи побитового сочетания значений, доступных в System.GenericUriParserOptions перечислении конструктору System.GenericUriParser . Тип GenericUriParserOptions.IriParsing указывает, что средство синтаксического анализа поддерживает правила синтаксического анализа, указанные в RFC 3987 для международных идентификаторов ресурсов (IRI).
Тип GenericUriParserOptions.Idn указывает, что парсер поддерживает синтаксический анализ международизированного доменного имени (IDN) для имен узлов. В .NET (Core) и .NET Framework 4.5+ всегда используется идентификатор. В предыдущих версиях параметр конфигурации определяет, используется ли идентификатор idN.
Поддержка неявного пути к файлу
Uri также можно использовать для представления путей локальной файловой системы. Эти пути можно представить явным образом в URI, которые начинаются с схемы file:// и неявно в URI, которые не имеют схемы file://. В качестве конкретного примера следующие два URI являются допустимыми и представляют один и тот же путь к файлу:
Uri uri1 = new Uri("C:/test/path/file.txt") // Implicit file path.
Uri uri2 = new Uri("file:///C:/test/path/file.txt") // Explicit file path.
Эти неявные пути к файлам не соответствуют спецификации URI и следует избегать, когда это возможно. При использовании .NET Core в системах на основе Unix неявные пути к файлам могут быть особенно проблемными, так как абсолютный неявный путь к файлу неотличим от относительного пути. Если такая неоднозначность присутствует, Uri по умолчанию следует интерпретировать путь как абсолютный универсальный код ресурса (URI).
Вопросы безопасности
Из-за опасений безопасности приложение должно проявлять осторожность при принятии Uri экземпляров из ненадежных источников и с dontEscape заданным значением true в конструкторе. Можно проверить строку URI для допустимости, вызвав IsWellFormedOriginalString метод.
При работе с ненадежными входными данными пользователя подтвердите предположения о вновь созданном Uri экземпляре, прежде чем доверять его свойствам.
Это можно сделать следующим образом:
string userInput = ...;
Uri baseUri = new Uri("https://myWebsite/files/");
if (!Uri.TryCreate(baseUri, userInput, out Uri newUri))
{
// Fail: invalid input.
}
if (!baseUri.IsBaseOf(newUri))
{
// Fail: the Uri base has been modified - the created Uri is not rooted in the original directory.
}
Эту проверку можно использовать в других случаях, например, при работе с UNC-путями, просто изменив baseUri.
Uri baseUri = new Uri(@"\\host\share\some\directory\name\");
Дополнительные сведения о проектировании и соображениях безопасности Uri и UriBuilder см. в следующей документации модели угроз:
Вопросы производительности
Если вы используете файлWeb.config , содержащий URI для инициализации приложения, для обработки URI требуется дополнительное время, если их идентификаторы схемы являются нестандартными. В таком случае инициализируйте затронутые части приложения, когда необходимы URI, а не при запуске.
Конструкторы
| Имя | Описание |
|---|---|
| Uri(SerializationInfo, StreamingContext) |
Устаревшие.
Инициализирует новый экземпляр Uri класса из указанных экземпляров SerializationInfo и StreamingContext классов. |
| Uri(String, Boolean) |
Устаревшие.
Устаревшие.
Устаревшие.
Устаревшие.
Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI) с явным контролем экранирования символов. |
| Uri(String, UriCreationOptions) |
Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI) и дополнительным UriCreationOptions. |
| Uri(String, UriKind) |
Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI). Этот конструктор позволяет указать, является ли строка URI относительной URI, абсолютным универсальным кодом ресурса (URI) или неопределенной. |
| Uri(String) |
Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI). |
| Uri(Uri, String, Boolean) |
Устаревшие.
Устаревшие.
Устаревшие.
Устаревшие.
Инициализирует новый экземпляр класса на основе указанных базовых Uri и относительных URI с явным контролем экранирования символов. |
| Uri(Uri, String) |
Инициализирует новый экземпляр класса на основе указанного Uri базового URI и относительной строки URI. |
| Uri(Uri, Uri) |
Инициализирует новый экземпляр класса на основе сочетания указанного базового Uri экземпляра Uri и относительного Uri экземпляра. |
Поля
| Имя | Описание |
|---|---|
| SchemeDelimiter |
Задает символы, разделяющие схему протокола связи от части адреса URI. Это поле может использоваться только для чтения. |
| UriSchemeData |
Предоставляет представление объекта универсального идентификатора ресурса (URI) и простого доступа к частям URI. |
| UriSchemeFile |
Указывает, что универсальный код ресурса (URI) является указателем на файл. Это поле может использоваться только для чтения. |
| UriSchemeFtp |
Указывает, что URI осуществляется через ПРОТОКОЛ передачи файлов (FTP). Это поле может использоваться только для чтения. |
| UriSchemeFtps |
Указывает, что URI осуществляется через протокол FTPS. Это поле может использоваться только для чтения. |
| UriSchemeGopher |
Указывает, что URI осуществляется через протокол Gopher. Это поле может использоваться только для чтения. |
| UriSchemeHttp |
Указывает, что URI осуществляется через протокол HTTP. Это поле может использоваться только для чтения. |
| UriSchemeHttps |
Указывает, что URI осуществляется через протокол HTTPS. Это поле может использоваться только для чтения. |
| UriSchemeMailto |
Указывает, что универсальный код ресурса (URI) является адресом электронной почты и осуществляется через протокол SMTP. Это поле может использоваться только для чтения. |
| UriSchemeNetPipe |
Указывает, что URI осуществляется через схему NetPipe, используемую Windows Communication Foundation (WCF). Это поле может использоваться только для чтения. |
| UriSchemeNetTcp |
Указывает, что URI осуществляется через схему NetTcp, используемую Windows Communication Foundation (WCF). Это поле может использоваться только для чтения. |
| UriSchemeNews |
Указывает, что универсальный код ресурса (URI) — это группа новостей Интернета, доступ к которому осуществляется через протокол NNTP. Это поле может использоваться только для чтения. |
| UriSchemeNntp |
Указывает, что универсальный код ресурса (URI) — это группа новостей Интернета, доступ к которому осуществляется через протокол NNTP. Это поле может использоваться только для чтения. |
| UriSchemeSftp |
Указывает, что URI осуществляется через протокол SSH-передачи файлов (SFTP). Это поле может использоваться только для чтения. |
| UriSchemeSsh |
Указывает, что URI осуществляется через протокол Secure Socket Shell (SSH). Это поле может использоваться только для чтения. |
| UriSchemeTelnet |
Указывает, что URI осуществляется через протокол Telnet. Это поле может использоваться только для чтения. |
| UriSchemeWs |
Указывает, что URI осуществляется через протокол WebSocket (WS). Это поле может использоваться только для чтения. |
| UriSchemeWss |
Указывает, что URI осуществляется через протокол WebSocket Secure (WSS). Это поле может использоваться только для чтения. |
Свойства
| Имя | Описание |
|---|---|
| AbsolutePath |
Возвращает абсолютный путь URI. |
| AbsoluteUri |
Возвращает абсолютный универсальный код ресурса (URI). |
| Authority |
Возвращает имя узла или IP-адрес системы доменных имен (DNS) и номер порта для сервера. |
| DnsSafeHost |
Возвращает имя узла, которое после того, как не было отложено при необходимости, безопасно использовать для разрешения DNS. |
| Fragment |
Возвращает escape-фрагмент URI, включая ведущий символ #, если он не пуст. |
| Host |
Возвращает узел этого экземпляра. |
| HostNameType |
Возвращает тип имени узла, указанного в URI. |
| IdnHost |
Возвращает международное доменное имя узла RFC 3490, используя Punycode соответствующим образом. Эта строка после того, как не будет отключена при необходимости, безопасно использовать для разрешения DNS. |
| IsAbsoluteUri |
Возвращает значение, указывающее, является ли Uri экземпляр абсолютным. |
| IsDefaultPort |
Возвращает значение, указывающее, является ли значение порта URI по умолчанию для этой схемы. |
| IsFile |
Возвращает значение, указывающее, является ли указанный Uri универсальный код ресурса (URI) файла. |
| IsLoopback |
Возвращает значение, указывающее, ссылается ли указанный Uri узел на локальный узел. |
| IsUnc |
Возвращает значение, указывающее, является ли указанный Uri путь универсальным соглашением об именовании (UNC). |
| LocalPath |
Возвращает локальное представление имени файла операционной системы. |
| OriginalString |
Возвращает исходную строку URI, переданную конструктору Uri . |
| PathAndQuery |
AbsolutePath Возвращает свойства, Query разделенные вопросительным знаком (?). |
| Port |
Возвращает номер порта этого URI. |
| Query |
Получает все сведения о запросе, включенные в указанный URI, включая ведущий символ "?", если не пуст. |
| Scheme |
Возвращает имя схемы для этого URI. |
| Segments |
Возвращает массив, содержащий сегменты пути, составляющие указанный универсальный код ресурса (URI). |
| UserEscaped |
Возвращает значение, указывающее, была ли строка URI полностью экранирована до создания экземпляра Uri . |
| UserInfo |
Возвращает имя пользователя, пароль или другие сведения, связанные с указанным универсальным кодом ресурса (URI). |
Методы
| Имя | Описание |
|---|---|
| Canonicalize() |
Устаревшие.
Устаревшие.
Устаревшие.
Преобразует внутренний URI в каноническую форму. |
| CheckHostName(String) |
Определяет, является ли указанное имя узла допустимым DNS-именем. |
| CheckSchemeName(String) |
Определяет, является ли указанное имя схемы допустимым. |
| CheckSecurity() |
Устаревшие.
Устаревшие.
Устаревшие.
Вызов этого метода не действует. |
| Compare(Uri, Uri, UriComponents, UriFormat, StringComparison) |
Сравнивает указанные части двух URI с помощью указанных правил сравнения. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Equals(Object) |
Сравнивает два Uri экземпляра для равенства. |
| Equals(Uri) |
Сравнивает два Uri экземпляра для равенства. |
| Escape() |
Устаревшие.
Устаревшие.
Устаревшие.
Преобразует все небезопасные или зарезервированные символы в компонент пути в шестнадцатеричные представления символов. |
| EscapeDataString(ReadOnlySpan<Char>) |
Преобразует диапазон в его экранированное представление. |
| EscapeDataString(String) |
Преобразует строку в его экранированное представление. |
| EscapeString(String) |
Устаревшие.
Устаревшие.
Устаревшие.
Устаревшие.
Преобразует строку в его экранированное представление. |
| EscapeUriString(String) |
Устаревшие.
Устаревшие.
Преобразует строку URI в его escape-представление. |
| FromHex(Char) |
Возвращает десятичное значение шестнадцатеричной цифры. |
| GetComponents(UriComponents, UriFormat) |
Возвращает указанные компоненты текущего экземпляра с помощью указанного экранирования для специальных символов. |
| GetHashCode() |
Возвращает хэш-код для URI. |
| GetLeftPart(UriPartial) |
Возвращает указанную часть экземпляра Uri . |
| GetLifetimeService() |
Устаревшие.
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Возвращает данные, необходимые для сериализации текущего экземпляра. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| HexEscape(Char) |
Преобразует указанный символ в шестнадцатеричный эквивалент. |
| HexUnescape(String, Int32) |
Преобразует указанное шестнадцатеричное представление символа в символ. |
| InitializeLifetimeService() |
Устаревшие.
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| IsBadFileSystemCharacter(Char) |
Устаревшие.
Устаревшие.
Устаревшие.
Указывает, является ли символ недопустимым в имени файловой системы. |
| IsBaseOf(Uri) |
Определяет, является ли текущий Uri экземпляр базой указанного Uri экземпляра. |
| IsExcludedCharacter(Char) |
Устаревшие.
Устаревшие.
Устаревшие.
Определяет, следует ли экранировать указанный символ. |
| IsHexDigit(Char) |
Определяет, является ли указанный символ допустимым шестнадцатеричным числом. |
| IsHexEncoding(String, Int32) |
Определяет, закодирован ли символ в строке шестнадцатеричным. |
| IsReservedCharacter(Char) |
Устаревшие.
Устаревшие.
Устаревшие.
Определяет, является ли указанный символ зарезервированным символом. |
| IsWellFormedOriginalString() |
Указывает, является ли строка, используемая для построения этой Uri строки, хорошо сформирована и не требует дальнейшего экранирования. |
| IsWellFormedUriString(String, UriKind) |
Указывает, является ли строка хорошо сформированной, пытаясь создать универсальный код ресурса (URI) со строкой и гарантирует, что строка не требует дальнейшего экранирования. |
| MakeRelative(Uri) |
Устаревшие.
Устаревшие.
Устаревшие.
Устаревшие.
Определяет разницу между двумя Uri экземплярами. |
| MakeRelativeUri(Uri) |
Определяет разницу между двумя Uri экземплярами. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Parse() |
Устаревшие.
Устаревшие.
Устаревшие.
Анализирует URI текущего экземпляра, чтобы убедиться, что он содержит все части, необходимые для допустимого URI. |
| ToString() |
Возвращает каноническое представление строки для указанного Uri экземпляра. |
| TryCreate(String, UriCreationOptions, Uri) |
Создает новый Uri экземпляр с помощью указанного String экземпляра и UriCreationOptions. |
| TryCreate(String, UriKind, Uri) |
Создает новый Uri с помощью указанного String экземпляра и экземпляра UriKind. |
| TryCreate(Uri, String, Uri) |
Создает новое Uri с помощью указанных базовых и относительных String экземпляров. |
| TryCreate(Uri, Uri, Uri) |
Создает новое Uri с помощью указанных базовых и относительных Uri экземпляров. |
| TryEscapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Пытается преобразовать диапазон в его экранированное представление. |
| TryFormat(Span<Char>, Int32) |
Пытается отформатировать каноническое строковое представление экземпляра Uri в указанный диапазон. |
| TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Пытается преобразовать диапазон в его неопакованное представление. |
| Unescape(String) |
Устаревшие.
Устаревшие.
Устаревшие.
Преобразует указанную строку, заменив все escape-последовательности их незакрытым представлением. |
| UnescapeDataString(ReadOnlySpan<Char>) |
Преобразует диапазон в его неискаченное представление. |
| UnescapeDataString(String) |
Преобразует строку в неопакованное представление. |
Операторы
| Имя | Описание |
|---|---|
| Equality(Uri, Uri) |
Определяет, имеют ли два экземпляра одно Uri и то же значение. |
| Inequality(Uri, Uri) |
Определяет, не имеют ли два Uri экземпляра одно и то же значение. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Форматирует значение текущего экземпляра с помощью указанного формата. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Возвращает данные, необходимые для сериализации текущего экземпляра. |
| ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Пытается отформатировать значение текущего экземпляра в предоставленный диапазон символов. |
Применяется к
Потокобезопасность
Все члены Uri являются потокобезопасными и могут использоваться одновременно из нескольких потоков.