Uri Класс

Определение

Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям.Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI.

public ref class Uri : System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.UriTypeConverter))]
[System.Serializable]
public class Uri : System.Runtime.Serialization.ISerializable
type Uri = class
    interface ISerializable
Public Class Uri
Implements ISerializable
Наследование
Атрибуты
Реализации

Примеры

В следующем примере создается экземпляр класса Uri и используется для создания экземпляра WebRequest.The following example creates an instance of the Uri class and uses it to create a WebRequest instance.

Uri^ siteUri = gcnew Uri( "http://www.contoso.com/" );
WebRequest^ wr = WebRequest::Create( siteUri );
Uri siteUri = new Uri("http://www.contoso.com/");
 
WebRequest wr = WebRequest.Create(siteUri);

Dim siteUri As New Uri("http://www.contoso.com/")
        
Dim wr As WebRequest = WebRequest.Create(siteUri)

Комментарии

Универсальный код ресурса (URI) — это компактное представление ресурса, доступного приложению в интрасети или Интернете.A URI is a compact representation of a resource available to your application on the intranet or Internet. Класс Uri определяет свойства и методы для обработки URI, включая синтаксический анализ, сравнение и объединение.The Uri class defines the properties and methods for handling URIs, including parsing, comparing, and combining. Свойства класса Uri доступны только для чтения. чтобы создать изменяемый объект, используйте класс UriBuilder.The Uri class properties are read-only; to create a modifiable object, use the UriBuilder class.

Относительные URI (например, "/new/index.htm") должны быть расширены по отношению к базовому универсальному коду ресурса (URI), чтобы они были абсолютными.Relative URIs (for example, "/new/index.htm") must be expanded with respect to a base URI so that they are absolute. Для преобразования абсолютных URI в относительные URI при необходимости предоставляется метод MakeRelative.The MakeRelative method is provided to convert absolute URIs to relative URIs when necessary.

Конструкторы Uri не отключают строки URI, если строка является правильным форматом URI, включая идентификатор схемы.The Uri constructors do not escape URI strings if the string is a well-formed URI including a scheme identifier.

Свойства Uri возвращают каноническое представление данных в escape-кодировке, при этом все символы со значениями Юникода, превышающими 127, заменяются их шестнадцатеричными эквивалентами.The Uri properties return a canonical data representation in escaped encoding, with all characters with Unicode values greater than 127 replaced with their hexadecimal equivalents. Чтобы разместить URI в канонической форме, конструктор Uri выполняет следующие действия:To put the URI in canonical form, the Uri constructor performs the following steps:

  • Преобразует схему URI в нижний регистр.Converts the URI scheme to lowercase.

  • Преобразует имя узла в нижний регистр.Converts the host name to lowercase.

  • Если имя узла является IPv6-адресом, используется канонический IPv6-адрес.If the host name is an IPv6 address, the canonical IPv6 address is used. ScopeId и другие необязательные данные IPv6 удаляются.ScopeId and other optional IPv6 data are removed.

  • Удаляет значения по умолчанию и пустые номера портов.Removes default and empty port numbers.

  • Преобразует неявные пути к файлам без схемы file://(например, "К:\ми\филе") в явные пути к файлам с помощью схемы file://.Converts implicit file paths without the file:// scheme (for example, "C:\my\file") to explicit file paths with the file:// scheme.

  • Экранированные символы (также известные как процентные октеты) без зарезервированного назначения декодируются (также называются неэкранированными).Escaped characters (also known as percent-encoded octets) that don't have a reserved purpose are decoded (also known as being unescaped). К этим незарезервированным символам относятся прописные и строчные буквы (%41-% 5A и %61-% 7А), десятичные цифры (%30 – %39), дефис (% 2D), точка (% 2E), символ подчеркивания (% 5F) и тильда (% 7E).These unreserved characters include uppercase and lowercase letters (%41-%5A and %61-%7A), decimal digits (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), and tilde (%7E).

  • Каноникализес путь для иерархических URI путем сжатия последовательностей, таких как/./,/.. /и//(вне зависимости от того, экранирована ли последовательность).Canonicalizes the path for hierarchical URIs by compacting sequences such as /./, /../, and // (whether or not the sequence is escaped). Обратите внимание, что некоторые схемы, для которых эти последовательности не сжимаются.Note that there are some schemes for which these sequences are not compacted.

  • Для иерархических URI, если узел не завершается косой чертой (/), он добавляется.For hierarchical URIs, if the host is not terminated with a forward slash (/), one is added.

  • По умолчанию все зарезервированные символы в URI преобразуются в соответствии с RFC 2396.By default, any reserved characters in the URI are escaped in accordance with RFC 2396. Это поведение меняется, если включен международный анализ международных идентификаторов ресурсов или международного доменного имени. в этом случае зарезервированные символы в URI будут экранированы в соответствии с RFC 3986 и RFC 3987.This behavior changes if International Resource Identifiers or International Domain Name parsing is enabled in which case reserved characters in the URI are escaped in accordance with RFC 3986 and RFC 3987.

В рамках канонизации в конструкторе для некоторых схем, сегментов и пустых сегментов (/./,/.. /и//) сжимаются (иными словами, они удаляются).As part of canonicalization in the constructor for some schemes, dot-segments and empty segments (/./, /../, and //) are compacted (in other words, they are removed). Схемы, для которых в коде URI будут сжиматься эти последовательности, включают HTTP, HTTPS, TCP, net. pipe и net. TCP.The schemes for which URI will compact these sequences include http, https, tcp, net.pipe, and net.tcp. Для некоторых других схем эти последовательности не сжимаются.For some other schemes, these sequences are not compacted. Вот как эта процедура сжатия выглядит на практике.Here's how this compacting looks in practice.

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(uri.AbsoluteUri);  
Console.WriteLine(uri.PathAndQuery);  

При выполнении этого кода он возвращает следующие выходные данные, при необходимости экранированные последовательности не экранированы, если это необходимо, а затем сжатие.When this code is executed, it returns the following output, with the escaped sequences unescaped if necessary and then compacted.

http://myUrl/  
/  

Вы можете преобразовать содержимое класса Uri из справочника по универсальным кодом ресурса (URI) в escape-кодировке в доступную для чтения ссылку на URI с помощью метода ToString.You can transform the contents of the Uri class from an escape encoded URI reference to a readable URI reference by using the ToString method. Обратите внимание, что некоторые зарезервированные символы по-прежнему могут быть экранированы в выходных данных метода ToString.Note that some reserved characters might still be escaped in the output of the ToString method. Это необходимо для поддержки однозначной реконструкции URI из значения, возвращаемого ToString.This is to support unambiguous reconstruction of a URI from the value returned by ToString.

Некоторые URI включают в себя идентификатор фрагмента или запрос либо и то, и другое.Some URIs include a fragment identifier or a query or both. Идентификатор фрагмента — это любой текст, следующий за знаком решетки (#), не включая знак номера; текст фрагмента сохраняется в свойстве Fragment.A fragment identifier is any text that follows a number sign (#), not including the number sign; the fragment text is stored in the Fragment property. Сведения о запросе — это любой текст, следующий за вопросительным знаком (?) в URI; текст запроса хранится в свойстве Query.Query information is any text that follows a question mark (?) in the URI; the query text is stored in the Query property.

В .NET Framework версии 1,1, если строка, указанная в конструкторе, содержит неизвестную схему и "c:\", класс универсального кода ресурса (URI) вставляет символ "//" после двоеточия.In the .NET Framework version 1.1, if the string specified to a constructor contains an unknown scheme and "c:\", the Uri class inserts "//" after the colon. Например, URI xyz:c:\abc преобразуется в xyz://c:/abc.For example, the URI xyz:c:\abc is converted to xyz://c:/abc. В .NET Framework версии 2,0 это поведение было удалено, а пример строки преобразуется в xyz:c:/abc.In the .NET Framework version 2.0, this behavior has been removed, and the example string is converted to xyz:c:/abc.

Примечание

Класс URI поддерживает использование IP-адресов в четырех нотациях для протокола IPv4 и двоеточие в шестнадцатеричном формате для протокола IPv6.The URI class supports the use of IP addresses in both quad-notation for IPv4 protocol and colon-hexadecimal for IPv6 protocol. Не забудьте заключить IPv6-адрес в квадратные скобки, как в http://[:: 1].Remember to enclose the IPv6 address in square brackets, as in http://[::1].

Поддержка международных идентификаторов ресурсовInternational Resource Identifier Support

Веб-адреса обычно выражаются с помощью универсальных идентификаторов ресурсов, состоящих из очень ограниченного набора символов:Web addresses are typically expressed using uniform resource identifiers that consist of a very restricted set of characters:

  • буквы верхнего и нижнего регистра английского алфавита в кодировке ASCII;Upper and lower case ASCII letters from the English alphabet.

  • цифры от 0 до 9;Digits from 0 to 9.

  • небольшое количество других символов ASCII.A small number of other ASCII symbols.

Спецификации URI задокументированы в RFC 2396, RFC 2732, RFC 3986 и RFC 3987, опубликованных IETF.The specifications for URIs are documented in RFC 2396, RFC 2732, RFC 3986, and RFC 3987 published by the Internet Engineering Task Force (IETF).

По мере расширения Интернета потребность в идентификации ресурсов на языках, отличных от английского, становится все более насущной.With the growth of the Internet, there is a growing need to identify resources using languages other than English. Идентификаторы, которые способствуют удовлетворению этой потребности и позволяют использовать символы, не принадлежащие к кодировке ASCII (символы из кодировок Unicode/ISO 10646), называются международными кодами ресурсов (IRI).Identifiers which facilitate this need and allow non-ASCII characters (characters in the Unicode/ISO 10646 character set) are known as International Resource Identifiers (IRIs). Спецификации IRI документально зафиксированы в стандарте RFC 3987, опубликованном IETF.The specifications for IRIs are documented in RFC 3987 published by IETF. Использование IRI позволяет применять в URL символы Юникода.Using IRIs allows a URL to contain Unicode characters.

Существующий класс Uri был расширен в .NET Framework v 3.5, 3,0 с пакетом обновления 1 (SP1) и 2,0 SP1, чтобы обеспечить поддержку IRI на основе RFC 3987.The existing Uri class has been extended in .NET Framework v3.5, 3.0 SP1, and 2.0 SP1 to provide IRI support based on RFC 3987. Пользователи .NET Framework версий до версии 4,5 не увидят каких бы то ни было изменений в поведении .NET Framework 2,0, если они специально не включают IRI.Users of .NET Framework versions before version 4.5 will not see any change from the .NET Framework 2.0 behavior unless they specifically enable IRI. Это обеспечивает совместимость приложений с предыдущими версиями платформы .NET Framework.This ensures application compatibility with prior versions of the .NET Framework.

Чтобы включить поддержку IRI, необходимо следующее изменение:To enable support for IRI, the following change is required:

  • Укажите, следует ли применять синтаксический анализ международного доменного имени (IDN) к доменному имени и следует ли применять правила синтаксического анализа IRI.Specify whether you want Internationalized Domain Name (IDN) parsing applied to the domain name and whether IRI parsing rules should be applied. Это можно сделать в Machine. config или в файле app. config .This can be done in the machine.config or in the app.config file. Например, добавьте следующее:For example, add the following:

    <configuration>  
      <uri>  
      <idn enabled="All" />  
      <iriParsing enabled="true" />  
      </uri>  
    </configuration>  
    

Для пользователей .NET Framework 4,5 и более поздних версий поддержка IRI всегда включена.Users of .NET Framework 4.5 and newer always have IRI enabled. Синтаксический анализ IRI нельзя изменить с помощью файла config .IRI parsing cannot be changed using a .config file.

При включенном IDN метки в Юникоде в доменном имени будут преобразованы в аналоги в кодировке Punicode.Enabling IDN will convert all Unicode labels in a domain name to their Punycode equivalents. Имена Punicode содержат только символы ASCII и всегда начинаются с префикса "xn--".Punycode names contain only ASCII characters and always start with the xn-- prefix. Это сделано для того, чтобы поддерживать существующие DNS-серверы в интрасети, так как большинство DNS-серверов поддерживает только символы ASCII (см. RFC 3940).The reason for this is to support existing DNS servers on the Internet, since most DNS servers only support ASCII characters (see RFC 3940).

Включение IRI и IDN влияет на значение свойства Uri.DnsSafeHost.Enabling IRI and IDN affects the value of the Uri.DnsSafeHost property. Включение IRI и IDN может также привести к изменению принципа действия методов Equals, OriginalString, GetComponents и IsWellFormedOriginalString.Enabling IRI and IDN can also change the behavior of the Equals, OriginalString, GetComponents, and IsWellFormedOriginalString methods.

Существует три возможных значения для IDN в зависимости от используемых DNS-серверов.There are three possible values for IDN depending on the DNS servers that are used:

  • IDN включен = ALLidn enabled = All

    При этом значении имена доменов из Юникода будут преобразовываться в их эквиваленты в Punycode (IDN-имена).This value will convert any Unicode domain names to their Punycode equivalents (IDN names).

  • IDN включен = Аллексцептинтранетidn enabled = AllExceptIntranet

    Это значение преобразует все доменные имена Юникода, которые не находятся в локальной интрасети, для использования эквивалентов в Punycode (IDN-имен).This value will convert all Unicode domain names not on the local Intranet to use the Punycode equivalents (IDN names). В этом случае для обработки международных имен в локальной интрасети DNS-серверы, используемые для интрасети, должны поддерживать разрешение имен Юникода.In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode name resolution.

  • IDN включен = Noneidn enabled = None

    При этом значении имена доменов в Юникоде не будут преобразовываться в их эквиваленты в Punycode.This value will not convert any Unicode domain names to use Punycode. Это значение по умолчанию, которое согласуется с поведением .NET Framework 2,0.This is the default value which is consistent with the .NET Framework 2.0 behaviour.

Если анализ IRI включен (элемент iriParsing enabled = true) нормализация и проверка символов выполняются в соответствии с последними правилами IRI в RFC 3986 и RFC 3987.When IRI parsing is enabled (iriParsing enabled = true) normalization and character checking are done according to the latest IRI rules in RFC 3986 and RFC 3987. Если синтаксический анализ IRI отключен, нормализация и проверка символов выполняются в соответствии с RFC 2396 и RFC 2732 (для литералов IPv6).When IRI parsing is disabled, normalization and character checking are performed according to RFC 2396 and RFC 2732 (for IPv6 literals). В версиях .NET Framework до версии 4,5 значение по умолчанию — false.In versions of the .NET Framework before version 4.5, the default value is false. В .NET Framework версии 4,5 и более поздних значение по умолчанию — true, а включенное состояние синтаксического анализа IRI нельзя изменить с помощью параметров в файле конфигурации .In .NET Framework version 4.5 and newer, the default value is true, and the enabled state of IRI parsing cannot be modified by settings in a .config file.

Обработка IRI и IDN в классе Uri можно также контролировать с помощью классов параметров конфигурации System.Configuration.IriParsingElement, System.Configuration.IdnElementи System.Configuration.UriSection.IRI and IDN processing in the Uri class can also be controlled using the System.Configuration.IriParsingElement, System.Configuration.IdnElement, and System.Configuration.UriSection configuration setting classes. Параметр System.Configuration.IriParsingElement включает или отключает обработку IRI в классе Uri.The System.Configuration.IriParsingElement setting enables or disables IRI processing in the Uri class. Параметр System.Configuration.IdnElement включает или отключает обработку IDN в классе Uri.The System.Configuration.IdnElement setting enables or disables IDN processing in the Uri class. Параметр System.Configuration.IriParsingElement также косвенно управляет IDN.The System.Configuration.IriParsingElement setting also indirectly controls IDN. Обработка IRI должна быть включена для обработки IDN.IRI processing must be enabled for IDN processing to be possible. Если IRI-система не включена, то обработка IDN данных будет происходить по умолчанию, когда режим платформы .NET Framework 2.0 является совместимым и имена IDN не используются.If IRI processing is disabled, then IDN processing will be set to the default setting where the .NET Framework 2.0 behavior is used for compatibility and IDN names are not used.

Параметр конфигурации для System.Configuration.IriParsingElement и System.Configuration.IdnElement будет считаться один раз при создании первого класса System.Uri.The configuration setting for the System.Configuration.IriParsingElement and System.Configuration.IdnElement will be read once when the first System.Uri class is constructed. Изменения, внесенные в параметры конфигурации после этого, игнорируются.Changes to configuration settings after that time are ignored.

Расширен был также и класс System.GenericUriParser, который теперь позволяет создавать настраиваемые средства синтаксического анализа, поддерживающие IRI и IDN.The System.GenericUriParser class has also been extended to allow creating a customizable parser that supports IRI and IDN. Поведение объекта System.GenericUriParser задается путем передачи побитового сочетания значений, доступных в перечислении System.GenericUriParserOptions, конструктору System.GenericUriParser.The behavior of a System.GenericUriParser object is specified by passing a bitwise combination of the values available in the System.GenericUriParserOptions enumeration to the System.GenericUriParser constructor. Тип GenericUriParserOptions.IriParsing указывает на то, что средство синтаксического анализа поддерживает правила анализа, определенные стандартом RFC 3987 для международных кодов ресурсов (IRI).The GenericUriParserOptions.IriParsing type indicates the parser supports the parsing rules specified in RFC 3987 for International Resource Identifiers (IRI). Используется ли IRI, зависит от описанных выше значений конфигурации.Whether IRI is used is dictated by the configuration values previously discussed.

Тип GenericUriParserOptions.Idn указывает на то, что средство синтаксического анализа поддерживает анализ международных доменных имен (IDN) узлов.The GenericUriParserOptions.Idn type indicates the parser supports Internationalized Domain Name (IDN) parsing (IDN) of host names. Используется ли IDN, зависит от описанных выше значений конфигурации.Whether IDN is used is dictated by the configuration values previously discussed.

Поддержка неявных путей к файламImplicit File Path Support

Uri также можно использовать для представления путей локальной файловой системы.Uri can also be used to represent local file system paths. Эти пути можно явно представить в URI, которые начинаются со схемы file://, и неявно в URI, которые не имеют схемы file://.These paths can be represented explicitly in URIs that begin with the file:// scheme, and implicitly in URIs that do not have the file:// scheme. В качестве конкретного примера допустимы следующие два URI, которые представляют один и тот же путь к файлу:As a concrete example, the following two URIs are both valid, and represent the same file path:

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, поэтому их следует избегать, если это возможно.These implicit file paths are not compliant with the URI specification and so should be avoided when possible. При использовании .NET Core в системах на базе UNIX неявные пути к файлам могут быть особенно проблематичными, поскольку абсолютный неявный путь к файлу не различается из относительного пути.When using .NET Core on Unix-based systems, implicit file paths can be especially problematic, because an absolute implicit file path is indistinguishable from a relative path. При наличии такой неоднозначности Uri значение по умолчанию, чтобы интерпретировать путь как абсолютный URI.When such ambiguity is present, Uri default to interpreting the path as an absolute URI.

Особенности производительностиPerformance Considerations

Если вы используете файл * Web. config *, содержащий URI для инициализации приложения, необходимо дополнительное время для обработки URI, если их идентификаторы схем являются нестандартными.If you use a *Web.config *file that contains URIs to initialize your application, additional time is required to process the URIs if their scheme identifiers are nonstandard. В этом случае следует инициализировать затронутые части приложения, когда требуются URI, а не во время начала.In such a case, initialize the affected parts of your application when the URIs are needed, not at start time.

Примечания для тех, кто вызывает этот метод

Из-за проблем с безопасностью приложение должно соблюдать осторожность при принятии Uri экземпляров из ненадежных источников и с dontEscape установленным в значение true. Вы можете проверить допустимость строки URI, вызвав метод IsWellFormedOriginalString().Because of security concerns, your application should use caution when accepting Uri instances from untrusted sources and with dontEscape set to true.You can check a URI string for validity by calling the IsWellFormedOriginalString() method.

Конструкторы

Uri(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса Uri на основе указанных экземпляров классов SerializationInfo и StreamingContext.Initializes a new instance of the Uri class from the specified instances of the SerializationInfo and StreamingContext classes.

Uri(String)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса.Initializes a new instance of the Uri class with the specified URI.

Uri(String, Boolean)

Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса и явным управлением преобразованием в escape-последовательность.Initializes a new instance of the Uri class with the specified URI, with explicit control of character escaping.

Uri(String, UriKind)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса.Initializes a new instance of the Uri class with the specified URI. Этот конструктор позволяет указать, содержится ли в строке универсального кода ресурса относительный универсальный код ресурса, абсолютный универсальный код ресурса или неопределенный вариант.This constructor allows you to specify if the URI string is a relative URI, absolute URI, or is indeterminate.

Uri(Uri, String)

Инициализирует новый экземпляр класса Uri на основе заданного базового универсального кода ресурса и строки относительного универсального кода ресурса.Initializes a new instance of the Uri class based on the specified base URI and relative URI string.

Uri(Uri, String, Boolean)

Инициализирует новый экземпляр класса Uri на основе заданных базового и относительного универсального кода ресурса с явным управлением преобразованием в escape-последовательность.Initializes a new instance of the Uri class based on the specified base and relative URIs, with explicit control of character escaping.

Uri(Uri, Uri)

Инициализирует новый экземпляр класса Uri на основе сочетания заданного базового экземпляра Uri и относительного экземпляра Uri.Initializes a new instance of the Uri class based on the combination of a specified base Uri instance and a relative Uri instance.

Поля

SchemeDelimiter

Определяет символы, отделяющие схему протокола передачи данных от адресной части универсального кода ресурса.Specifies the characters that separate the communication protocol scheme from the address portion of the URI. Это поле доступно только для чтения.This field is read-only.

UriSchemeFile

Указывает на то, что универсальный код ресурса является указателем на файл.Specifies that the URI is a pointer to a file. Это поле доступно только для чтения.This field is read-only.

UriSchemeFtp

Указывает на то, что данный универсальный код ресурса доступен по протоколу FTP.Specifies that the URI is accessed through the File Transfer Protocol (FTP). Это поле доступно только для чтения.This field is read-only.

UriSchemeGopher

Указывает на то, что данный универсальный код ресурса доступен по протоколу Gopher.Specifies that the URI is accessed through the Gopher protocol. Это поле доступно только для чтения.This field is read-only.

UriSchemeHttp

Указывает на то, что данный универсальный код ресурса доступен по протоколу HTTP.Specifies that the URI is accessed through the Hypertext Transfer Protocol (HTTP). Это поле доступно только для чтения.This field is read-only.

UriSchemeHttps

Указывает на то, что данный универсальный код ресурса доступен по протоколу HTTPS.Specifies that the URI is accessed through the Secure Hypertext Transfer Protocol (HTTPS). Это поле доступно только для чтения.This field is read-only.

UriSchemeMailto

Указывает на то, что данный универсальный код ресурса представляет адрес электронной почты и доступен по протоколу SMTP.Specifies that the URI is an email address and is accessed through the Simple Mail Transport Protocol (SMTP). Это поле доступно только для чтения.This field is read-only.

UriSchemeNetPipe

Указывает, что доступ к универсальному коду ресурса осуществляется через схему NetPipe, используемую Windows Communication Foundation (WCF).Specifies that the URI is accessed through the NetPipe scheme used by Windows Communication Foundation (WCF). Это поле доступно только для чтения.This field is read-only.

UriSchemeNetTcp

Указывает, что доступ к универсальному коду ресурса осуществляется через схему NetTcp, используемую Windows Communication Foundation (WCF).Specifies that the URI is accessed through the NetTcp scheme used by Windows Communication Foundation (WCF). Это поле доступно только для чтения.This field is read-only.

UriSchemeNews

Указывает на то, что данный универсальный код ресурса представляет группу новостей Интернета и доступен по протоколу NNTP.Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). Это поле доступно только для чтения.This field is read-only.

UriSchemeNntp

Указывает на то, что данный универсальный код ресурса представляет группу новостей Интернета и доступен по протоколу NNTP.Specifies that the URI is an Internet news group and is accessed through the Network News Transport Protocol (NNTP). Это поле доступно только для чтения.This field is read-only.

Свойства

AbsolutePath

Возвращает абсолютный путь универсального кода ресурса.Gets the absolute path of the URI.

AbsoluteUri

Получает абсолютный универсальный код ресурса.Gets the absolute URI.

Authority

Получает для сервера службу доменных имен (DNS) или IP-адрес и номер порта.Gets the Domain Name System (DNS) host name or IP address and the port number for a server.

DnsSafeHost

Возвращает имя узла, которое после преобразования в неэкранированную форму, если это необходимо, можно безопасно использовать для разрешения DNS.Gets a host name that, after being unescaped if necessary, is safe to use for DNS resolution.

Fragment

Получает escape-последовательность фрагмента универсального кода ресурса.Gets the escaped URI fragment.

Host

Получает компонент узла этого экземпляра.Gets the host component of this instance.

HostNameType

Возвращает тип имени узла, заданного в универсальном коде ресурса.Gets the type of the host name specified in the URI.

IdnHost

Международное доменное имя узла, соответствующее RFC 3490, в котором используется Punycode.The RFC 3490 compliant International Domain Name of the host, using Punycode as appropriate. Строка, которую после преобразования в неэкранированную форму, если это необходимо, можно безопасно использовать для разрешения DNS.This string, after being unescaped if necessary, is safe to use for DNS resolution.

IsAbsoluteUri

Возвращает значение, позволяющее определить, является ли экземпляр Uri абсолютным.Gets whether the Uri instance is absolute.

IsDefaultPort

Получает значение, позволяющее определить, является ли номер порта, указанный в универсальном коде ресурса, портом данной схемы по умолчанию.Gets whether the port value of the URI is the default for this scheme.

IsFile

Возвращает значение, позволяющее определить, представляет ли заданный параметр Uri универсальный код ресурса файла.Gets a value indicating whether the specified Uri is a file URI.

IsLoopback

Возвращает значение, позволяющее определить, ссылается ли заданный Uri на локальный узел.Gets whether the specified Uri references the local host.

IsUnc

Возвращает значение, позволяющее определить, является ли заданный Uri UNC-путем.Gets whether the specified Uri is a universal naming convention (UNC) path.

LocalPath

Получает представление имени файла в локальной операционной системе.Gets a local operating-system representation of a file name.

OriginalString

Возвращает исходную строку универсального кода ресурса, переданную в конструктор Uri.Gets the original URI string that was passed to the Uri constructor.

PathAndQuery

Возвращает свойства AbsolutePath и Query, разделенные вопросительным знаком (?).Gets the AbsolutePath and Query properties separated by a question mark (?).

Port

Получает номер порта данного универсального кода ресурса.Gets the port number of this URI.

Query

Получает любые сведения запроса, включенные в заданный универсальный код ресурса.Gets any query information included in the specified URI.

Scheme

Возвращает имя схемы для данного универсального кода ресурса.Gets the scheme name for this URI.

Segments

Получает массив, содержащий сегменты пути, которые образуют указанный универсальный код ресурса.Gets an array containing the path segments that make up the specified URI.

UserEscaped

Указывает на то, что строка универсального кода ресурса не была полностью преобразована в escape-последовательность перед созданием экземпляра класса Uri.Indicates that the URI string was completely escaped before the Uri instance was created.

UserInfo

Получает имя пользователя, пароль или другие связанные с пользователем сведения, которые соответствуют заданному универсальному коду ресурса.Gets the user name, password, or other user-specific information associated with the specified URI.

Методы

Canonicalize()

Преобразует сохраненный во внутреннем хранилище универсальный код ресурса в каноническую форму.Converts the internally stored URI to canonical form.

CheckHostName(String)

Определяет, является ли указанное имя узла допустимым DNS-именем.Determines whether the specified host name is a valid DNS name.

CheckSchemeName(String)

Определяет, является ли допустимым указанное имя схемы.Determines whether the specified scheme name is valid.

CheckSecurity()

Вызов этого метода ни на что не влияет.Calling this method has no effect.

Compare(Uri, Uri, UriComponents, UriFormat, StringComparison)

Сравнивает указанные части двух универсальных кодов ресурса, используя заданные правила сравнения.Compares the specified parts of two URIs using the specified comparison rules.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
Equals(Object)

Сравнивает два экземпляра Uri на предмет их равенства.Compares two Uri instances for equality.

Escape()

Преобразует все небезопасные или зарезервированные символы в компонент пути, используя шестнадцатеричное представление.Converts any unsafe or reserved characters in the path component to their hexadecimal character representations.

EscapeDataString(String)

Преобразует строку в ее escape-представление.Converts a string to its escaped representation.

EscapeString(String)

Преобразует строку в ее escape-представление.Converts a string to its escaped representation.

EscapeUriString(String)

Преобразует строку универсального кода ресурса в ее escape-представление.Converts a URI string to its escaped representation.

FromHex(Char)

Получает десятичное значение шестнадцатеричной цифры.Gets the decimal value of a hexadecimal digit.

GetComponents(UriComponents, UriFormat)

Получает заданные компоненты текущего экземпляра, используя указанное для специальных знаков escape-преобразование.Gets the specified components of the current instance using the specified escaping for special characters.

GetHashCode()

Получает хэш-код для универсального кода ресурса.Gets the hash code for the URI.

GetLeftPart(UriPartial)

Возвращает заданную часть экземпляра Uri.Gets the specified portion of a Uri instance.

GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Возвращает данные, необходимые для сериализации текущего экземпляра.Returns the data needed to serialize the current instance.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
HexEscape(Char)

Преобразует заданный символ в эквивалентное ему шестнадцатеричное число.Converts a specified character into its hexadecimal equivalent.

HexUnescape(String, Int32)

Преобразует шестнадцатеричное представление символа в сам символ.Converts a specified hexadecimal representation of a character to the character.

InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
IsBadFileSystemCharacter(Char)

Получает значение, позволяющее определить, содержит ли имя файловой системы недопустимый символ.Gets whether a character is invalid in a file system name.

IsBaseOf(Uri)

Определяет, является ли текущий экземпляр Uri основой указанного экземпляра Uri.Determines whether the current Uri instance is a base of the specified Uri instance.

IsExcludedCharacter(Char)

Возвращает значение, позволяющее определить, нужно ли преобразовывать указанный символ в escape-последовательность.Gets whether the specified character should be escaped.

IsHexDigit(Char)

Определяет, является ли указанный символ допустимой шестнадцатеричной цифрой.Determines whether a specified character is a valid hexadecimal digit.

IsHexEncoding(String, Int32)

Определяет, является ли кодировка символа шестнадцатеричной.Determines whether a character in a string is hexadecimal encoded.

IsReservedCharacter(Char)

Возвращает значение, позволяющее определить, является ли заданный символ зарезервированным знаком.Gets whether the specified character is a reserved character.

IsWellFormedOriginalString()

Указывает, является ли формат строки, использовавшейся для создания данного Uri, правильным и не требующим дальнейшего преобразования в escape-последовательность.Indicates whether the string used to construct this Uri was well-formed and is not required to be further escaped.

IsWellFormedUriString(String, UriKind)

Указывает, является ли правильным формат данной строки, пытаясь создать на ее основе универсальный код ресурса и проверяя, не требуется ли для нее дополнительное преобразование в escape-последовательность.Indicates whether the string is well-formed by attempting to construct a URI with the string and ensures that the string does not require further escaping.

MakeRelative(Uri)

Определяет разницу между двумя экземплярами класса Uri.Determines the difference between two Uri instances.

MakeRelativeUri(Uri)

Определяет разницу между двумя экземплярами класса Uri.Determines the difference between two Uri instances.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
Parse()

Анализирует универсальный код ресурса текущего экземпляра и проверяет, действительно ли этот код содержит все обязательные части допустимого универсального кода ресурса.Parses the URI of the current instance to ensure it contains all the parts required for a valid URI.

ToString()

Возвращает каноническое строковое представление заданного экземпляра Uri.Gets a canonical string representation for the specified Uri instance.

TryCreate(String, UriKind, Uri)

Создает новый Uri, используя заданный экземпляр String и UriKind.Creates a new Uri using the specified String instance and a UriKind.

TryCreate(Uri, String, Uri)

Создает новый Uri, используя заданные экземпляры базового и относительного String.Creates a new Uri using the specified base and relative String instances.

TryCreate(Uri, Uri, Uri)

Создает новый Uri, используя заданные экземпляры базового и относительного Uri.Creates a new Uri using the specified base and relative Uri instances.

Unescape(String)

Преобразует указанную строку, заменив все escape-последовательности их представлениями, к которым не было применено escape-преобразование.Converts the specified string by replacing any escape sequences with their unescaped representation.

UnescapeDataString(String)

Отменяет преобразование строки в escape-представление.Converts a string to its unescaped representation.

Операторы

Equality(Uri, Uri)

Определяет, равны ли значения двух экземпляров Uri.Determines whether two Uri instances have the same value.

Inequality(Uri, Uri)

Определяет, не равны ли значения двух экземпляров Uri.Determines whether two Uri instances do not have the same value.

Явные реализации интерфейса

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Возвращает данные, необходимые для сериализации текущего экземпляра.Returns the data needed to serialize the current instance.

Применяется к

Дополнительно