Uri Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям.
public ref class Uri
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 : 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 ISerializable
type Uri = class
interface ISpanFormattable
interface IFormattable
interface ISerializable
type Uri = class
interface IFormattable
interface ISpanFormattable
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 ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Inherits MarshalByRefObject
Implements ISerializable
- Наследование
-
Uri
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается экземпляр Uri класса и он используется для выполнения запроса GET с HttpClientпомощью .
Uri^ siteUri = gcnew Uri("http://www.contoso.com/");
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
HttpClient^ client = gcnew HttpClient;
HttpRequestMessage^ request = gcnew HttpRequestMessage(HttpMethod::Get, siteUri);
HttpResponseMessage^ response = client->Send(request);
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
Комментарии
Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для Uri.
Конструкторы
Uri(SerializationInfo, StreamingContext) |
Устаревшие..
Инициализирует новый экземпляр класса Uri на основе указанных экземпляров классов SerializationInfo и StreamingContext. |
Uri(String) |
Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса. |
Uri(String, Boolean) |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса и явным управлением преобразованием в escape-последовательность. |
Uri(String, UriCreationOptions) |
Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI) и дополнительными .UriCreationOptions |
Uri(String, UriKind) |
Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса. Этот конструктор позволяет указать, содержится ли в строке универсального кода ресурса относительный универсальный код ресурса, абсолютный универсальный код ресурса или неопределенный вариант. |
Uri(Uri, String) |
Инициализирует новый экземпляр класса Uri на основе заданного базового универсального кода ресурса и строки относительного универсального кода ресурса. |
Uri(Uri, String, Boolean) |
Устаревшие..
Устаревшие..
Устаревшие..
Инициализирует новый экземпляр класса Uri на основе заданных базового и относительного универсального кода ресурса с явным управлением преобразованием в escape-последовательность. |
Uri(Uri, Uri) |
Инициализирует новый экземпляр класса Uri на основе сочетания заданного базового экземпляра Uri и относительного экземпляра Uri. |
Поля
SchemeDelimiter |
Определяет символы, отделяющие схему протокола передачи данных от адресной части универсального кода ресурса. Это поле доступно только для чтения. |
UriSchemeFile |
Указывает на то, что универсальный код ресурса является указателем на файл. Это поле доступно только для чтения. |
UriSchemeFtp |
Указывает на то, что данный универсальный код ресурса доступен по протоколу FTP. Это поле доступно только для чтения. |
UriSchemeFtps |
Указывает, что доступ к URI осуществляется через протокол FTPS. Это поле доступно только для чтения. |
UriSchemeGopher |
Указывает на то, что данный универсальный код ресурса доступен по протоколу Gopher. Это поле доступно только для чтения. |
UriSchemeHttp |
Указывает на то, что данный универсальный код ресурса доступен по протоколу HTTP. Это поле доступно только для чтения. |
UriSchemeHttps |
Указывает на то, что данный универсальный код ресурса доступен по протоколу HTTPS. Это поле доступно только для чтения. |
UriSchemeMailto |
Указывает на то, что данный универсальный код ресурса представляет адрес электронной почты и доступен по протоколу SMTP. Это поле доступно только для чтения. |
UriSchemeNetPipe |
Указывает, что доступ к универсальному коду ресурса осуществляется через схему NetPipe, используемую Windows Communication Foundation (WCF). Это поле доступно только для чтения. |
UriSchemeNetTcp |
Указывает, что доступ к универсальному коду ресурса осуществляется через схему NetTcp, используемую Windows Communication Foundation (WCF). Это поле доступно только для чтения. |
UriSchemeNews |
Указывает на то, что данный универсальный код ресурса представляет группу новостей Интернета и доступен по протоколу NNTP. Это поле доступно только для чтения. |
UriSchemeNntp |
Указывает на то, что данный универсальный код ресурса представляет группу новостей Интернета и доступен по протоколу NNTP. Это поле доступно только для чтения. |
UriSchemeSftp |
Указывает, что доступ к URI осуществляется по протоколу SFTP. Это поле доступно только для чтения. |
UriSchemeSsh |
Указывает, что доступ к URI осуществляется через протокол Secure Socket Shell (SSH). Это поле доступно только для чтения. |
UriSchemeTelnet |
Указывает, что доступ к URI осуществляется через протокол Telnet. Это поле доступно только для чтения. |
UriSchemeWs |
Указывает, что доступ к URI осуществляется по протоколу WebSocket (WS). Это поле доступно только для чтения. |
UriSchemeWss |
Указывает, что доступ к URI осуществляется через протокол WebSocket Secure (WSS). Это поле доступно только для чтения. |
Свойства
AbsolutePath |
Возвращает абсолютный путь универсального кода ресурса. |
AbsoluteUri |
Получает абсолютный универсальный код ресурса. |
Authority |
Получает для сервера службу доменных имен (DNS) или IP-адрес и номер порта. |
DnsSafeHost |
Возвращает имя узла, которое после преобразования в неэкранированную форму, если это необходимо, можно безопасно использовать для разрешения DNS. |
Fragment |
Возвращает фрагмент экранированного URI, включая символ "#", если он не пуст. |
Host |
Получает компонент узла этого экземпляра. |
HostNameType |
Возвращает тип имени узла, заданного в универсальном коде ресурса. |
IdnHost |
Получает международное доменное имя узла, соответствующее RFC 3490, при необходимости используя Punycode. Строка, которую после преобразования в неэкранированную форму, если это необходимо, можно безопасно использовать для разрешения DNS. |
IsAbsoluteUri |
Получает значение, которое указывает, является ли экземпляр Uri абсолютным. |
IsDefaultPort |
Получает значение, которое указывает, является ли значение порта URI значением по умолчанию для этой схемы. |
IsFile |
Получает значение, которое указывает, является ли указанный Uri URI файла. |
IsLoopback |
Получает значение, которое указывает, ссылается ли указанный Uri на локальный узел. |
IsUnc |
Получает значение, которое указывает, является ли указанный Uri путем UNC. |
LocalPath |
Получает представление имени файла в локальной операционной системе. |
OriginalString |
Возвращает исходную строку универсального кода ресурса, переданную в конструктор Uri. |
PathAndQuery |
Возвращает свойства AbsolutePath и Query, разделенные вопросительным знаком (?). |
Port |
Получает номер порта данного универсального кода ресурса. |
Query |
Возвращает все сведения о запросе, включенные в указанный URI, включая символ "?", если он не пуст. |
Scheme |
Возвращает имя схемы для данного универсального кода ресурса. |
Segments |
Получает массив, содержащий сегменты пути, которые образуют указанный универсальный код ресурса. |
UserEscaped |
Получает значение, которое указывает, была ли строка URI полностью экранирована перед созданием экземпляра Uri. |
UserInfo |
Получает имя пользователя, пароль или другие связанные с пользователем сведения, которые соответствуют заданному универсальному коду ресурса. |
Методы
Canonicalize() |
Устаревшие..
Устаревшие..
Устаревшие..
Преобразует сохраненный во внутреннем хранилище универсальный код ресурса в каноническую форму. |
CheckHostName(String) |
Определяет, является ли указанное имя узла допустимым DNS-именем. |
CheckSchemeName(String) |
Определяет, является ли допустимым указанное имя схемы. |
CheckSecurity() |
Устаревшие..
Устаревшие..
Устаревшие..
Вызов этого метода ни на что не влияет. |
Compare(Uri, Uri, UriComponents, UriFormat, StringComparison) |
Сравнивает указанные части двух универсальных кодов ресурса, используя заданные правила сравнения. |
CreateObjRef(Type) |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
Equals(Object) |
Сравнивает два экземпляра Uri на предмет их равенства. |
Escape() |
Устаревшие..
Устаревшие..
Устаревшие..
Преобразует все небезопасные или зарезервированные символы в компонент пути, используя шестнадцатеричное представление. |
EscapeDataString(ReadOnlySpan<Char>) |
Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям. |
EscapeDataString(String) |
Преобразует строку в ее escape-представление. |
EscapeString(String) |
Устаревшие..
Устаревшие..
Устаревшие..
Устаревшие..
Преобразует строку в ее escape-представление. |
EscapeUriString(String) |
Устаревшие..
Устаревшие..
Преобразует строку универсального кода ресурса в ее escape-представление. |
FromHex(Char) |
Получает десятичное значение шестнадцатеричной цифры. |
GetComponents(UriComponents, UriFormat) |
Получает заданные компоненты текущего экземпляра, используя указанное для специальных знаков escape-преобразование. |
GetHashCode() |
Получает хэш-код для универсального кода ресурса. |
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) |
Указывает, является ли правильным формат данной строки, пытаясь создать на ее основе универсальный код ресурса и проверяя, не требуется ли для нее дополнительное преобразование в escape-последовательность. |
MakeRelative(Uri) |
Устаревшие..
Устаревшие..
Устаревшие..
Устаревшие..
Определяет разницу между двумя экземплярами класса Uri. |
MakeRelativeUri(Uri) |
Определяет разницу между двумя экземплярами класса Uri. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
Parse() |
Устаревшие..
Устаревшие..
Устаревшие..
Анализирует универсальный код ресурса текущего экземпляра и проверяет, действительно ли этот код содержит все обязательные части допустимого универсального кода ресурса. |
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) |
Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям. |
TryFormat(Span<Char>, Int32) |
Пытается отформатировать каноническое строковое представление экземпляра Uri в указанный диапазон. |
TryUnescapeDataString(ReadOnlySpan<Char>, Span<Char>, Int32) |
Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям. |
Unescape(String) |
Устаревшие..
Устаревшие..
Устаревшие..
Преобразует указанную строку, заменив все escape-последовательности их представлениями, к которым не было применено escape-преобразование. |
UnescapeDataString(ReadOnlySpan<Char>) |
Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям. |
UnescapeDataString(String) |
Отменяет преобразование строки в escape-представление. |
Операторы
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 потокобезопасными и могут использоваться одновременно из нескольких потоков.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по