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 : IEquatable<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
public class Uri : IEquatable<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 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 ISerializable
Public Class Uri
Implements ISerializable, ISpanFormattable
Public Class Uri
Implements IEquatable(Of Uri), 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 на предмет их равенства. |
Equals(Uri) |
Обеспечивает объектное представление универсального кода ресурсов (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 как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по