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 потокобезопасными и могут использоваться одновременно из нескольких потоков.

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