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

Определение

Инициализирует новый экземпляр класса Uri.

Перегрузки

Uri(String)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса.

Uri(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса Uri на основе указанных экземпляров классов SerializationInfo и StreamingContext.

Uri(String, Boolean)
Является устаревшей.
Является устаревшей.
Является устаревшей.

Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса и явным управлением преобразованием в escape-последовательность.

Uri(String, UriCreationOptions)

Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI) и дополнительным UriCreationOptions.

Uri(String, UriKind)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса. Этот конструктор позволяет указать, содержится ли в строке универсального кода ресурса относительный универсальный код ресурса, абсолютный универсальный код ресурса или неопределенный вариант.

Uri(Uri, String)

Инициализирует новый экземпляр класса Uri на основе заданного базового универсального кода ресурса и строки относительного универсального кода ресурса.

Uri(Uri, Uri)

Инициализирует новый экземпляр класса Uri на основе сочетания заданного базового экземпляра Uri и относительного экземпляра Uri.

Uri(Uri, String, Boolean)
Является устаревшей.
Является устаревшей.
Является устаревшей.

Инициализирует новый экземпляр класса Uri на основе заданных базового и относительного универсального кода ресурса с явным управлением преобразованием в escape-последовательность.

Uri(String)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса.

public:
 Uri(System::String ^ uriString);
public Uri (string uriString);
new Uri : string -> Uri
Public Sub New (uriString As String)

Параметры

uriString
String

Строка, позволяющая идентифицировать ресурсы, которые должны быть представлены с помощью экземпляра Uri. Обратите внимание на то, что IPv6-адрес в строковой форме должен заключаться в скобки. Пример: "http://[2607:f8b0:400d:c06::69]".

Исключения

uriString имеет значение null.

Примечание. В .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса FormatException.

Параметр uriString пуст.

-или-

Схема, указанная в uriString, неправильно сформирована. См. раздел CheckSchemeName(String).

-или-

uriString содержит слишком много знаков косой черты.

-или-

Пароль, указанный в uriString, является недопустимым.

-или-

Имя узла, указанное в uriString, является недопустимым.

-или-

Имя файла, указанное в uriString, является недопустимым.

-или-

Имя пользователя, указанное в uriString, является недопустимым.

-или-

Имя узла или центра, указанное в uriString, не может заканчиваться обратной косой чертой.

-или-

Номер порта, указанный в uriString, является недопустимым или не поддается анализу.

-или-

Длина uriString превышает 65 519 символов.

-или-

Длина схемы, заданной в uriString, превышает 1023 символа.

-или-

Имеется недопустимая последовательность символов в uriString.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Примеры

В следующем примере создается экземпляр с универсальным Uri кодом ресурса (URI http://www.contoso.com/).

Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" );
Uri myUri = new Uri("http://www.contoso.com/");
let myUri = Uri "http://www.contoso.com/"
Dim myUri As New Uri("http://www.contoso.com/")

Комментарии

Этот конструктор создает Uri экземпляр из строки URI. Он анализирует универсальный код ресурса (URI), помещает его в канонический формат и делает все необходимые escape-кодировки.

Этот конструктор не гарантирует, что Uri он ссылается на доступный ресурс.

Этот конструктор предполагает, что string параметр ссылается на абсолютный URI и эквивалентен вызову конструктора Uri с UriKind заданным значением Absolute. Если параметр, string переданный конструктору, является относительным URI, этот конструктор вызовет UriFormatExceptionисключение .

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

Uri(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса Uri на основе указанных экземпляров классов SerializationInfo и StreamingContext.

protected:
 Uri(System::Runtime::Serialization::SerializationInfo ^ serializationInfo, System::Runtime::Serialization::StreamingContext streamingContext);
protected Uri (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
new Uri : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> Uri
Protected Sub New (serializationInfo As SerializationInfo, streamingContext As StreamingContext)

Параметры

serializationInfo
SerializationInfo

Экземпляр класса SerializationInfo содержит сведения, необходимые для сериализации нового экземпляра Uri.

streamingContext
StreamingContext

Экземпляр класса StreamingContext содержит источник сериализованного потока, связанного с новым экземпляром Uri.

Исключения

Параметр serializationInfo содержит универсальный код ресурса (URI) null.

Параметр serializationInfo содержит пустой универсальный код ресурса (URI).

-или-

Указанная схема неправильно сформирована. См. раздел CheckSchemeName(String).

-или-

Универсальный код ресурса (URI) содержит слишком много знаков косой черты.

-или-

Пароль, указанный в универсальном коде ресурса (URI), является недопустимым.

-или-

Имя узла, указанное в универсальном коде ресурса (URI), является недопустимым.

-или-

Имя файла, указанное в универсальном коде ресурса (URI), является недопустимым.

-или-

Имя пользователя, указанное в универсальном коде ресурса (URI), является недопустимым.

-или-

Имя узла или центра, указанное в универсальном коде ресурса (URI), не может заканчиваться обратной косой чертой.

-или-

Номер порта, указанный в универсальном коде ресурса (URI), является недопустимым или не поддается анализу.

-или-

Длина универсального кода ресурса (URI) превышает 65 519 символов.

-или-

Длина схемы, заданной в универсальном коде ресурса (URI), превышает 1023 символа.

-или-

Имеется недопустимая последовательность символов в универсальном коде ресурса (URI).

-или-

Путь MS-DOS, заданный в универсальном коде ресурса (URI), должен начинаться с c:\\.

Комментарии

Этот конструктор реализует ISerializable интерфейс для Uri класса.

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

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

Uri(String, Boolean)

Внимание!

The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202

Внимание!

This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.

Внимание!

The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202

Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса и явным управлением преобразованием в escape-последовательность.

public:
 Uri(System::String ^ uriString, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (string uriString, bool dontEscape);
[System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")]
public Uri (string uriString, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (string uriString, bool dontEscape);
public Uri (string uriString, bool dontEscape);
[<System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : string * bool -> Uri
[<System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")>]
new Uri : string * bool -> Uri
[<System.Obsolete("The constructor has been deprecated. Please use new Uri(string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : string * bool -> Uri
new Uri : string * bool -> Uri
Public Sub New (uriString As String, dontEscape As Boolean)

Параметры

uriString
String

Строка, позволяющая идентифицировать ресурсы, которые должны быть представлены с помощью экземпляра Uri. Обратите внимание на то, что IPv6-адрес в строковой форме должен заключаться в скобки. Пример: "http://[2607:f8b0:400d:c06::69]".

dontEscape
Boolean

Значение true, если параметр uriString полностью преобразовывается в escape-последовательность; в противном случае — значение false.

Атрибуты

Исключения

uriString имеет значение null.

Параметр uriString является пустым или содержит только пробелы.

-или-

Схема, указанная в параметре uriString, является недопустимой.

-или-

uriString содержит слишком много знаков косой черты.

-или-

Пароль, указанный в uriString, является недопустимым.

-или-

Имя узла, указанное в uriString, является недопустимым.

-или-

Имя файла, указанное в uriString, является недопустимым.

-или-

Имя пользователя, указанное в uriString, является недопустимым.

-или-

Имя узла или центра, указанное в uriString, не может заканчиваться обратной косой чертой.

-или-

Номер порта, указанный в uriString, является недопустимым или не поддается анализу.

-или-

Длина uriString превышает 65 519 символов.

-или-

Длина схемы, заданной в uriString, превышает 1023 символа.

-или-

Имеется недопустимая последовательность символов в uriString.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Примеры

В следующем примере создается Uri экземпляр для универсального кода ресурса (URI http://www.contoso.com/Hello%20World.htm). Так как автономный универсальный код ресурса (URI) полностью экранирован и находится в канонической форме, dontEscape параметр можно задать в trueзначение .

Uri^ myUri = gcnew Uri(  "http://www.contoso.com/Hello%20World.htm",true );
Uri myUri = new Uri("http://www.contoso.com/Hello%20World.htm", true);
let myUri = Uri("http://www.contoso.com/Hello%20World.htm", true)
Dim myUri As New Uri("http://www.contoso.com/Hello%20World.htm", True)

Комментарии

Этот конструктор создает Uri экземпляр из строки URI. Он анализирует универсальный код ресурса (URI) и помещает его в канонический формат.

Параметр dontEscape определяет, превратятся ли зарезервированные символы в escape-последовательности. Этот параметр следует задать true только в том случае, если вы уверены, что все зарезервированные символы в URI были экранированы. Установка значения true URI, который не был полностью экранирован, может привести к непредвиденному поведению. Настоятельно рекомендуется всегда задать для этого параметра falseзначение .

Если dontEscape задано значение false, конструктор экранирует все зарезервированные символы, проверив, что за всеми вхождениями процентов (%) следует допустимая escape-последовательность. Если последовательность символов после процента недопустима, процент заменяется %25.

Этот конструктор не гарантирует, что Uri он ссылается на доступный ресурс.

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

Uri(String, UriCreationOptions)

Инициализирует новый экземпляр Uri класса с указанным универсальным кодом ресурса (URI) и дополнительным UriCreationOptions.

public:
 Uri(System::String ^ uriString, UriCreationOptions % creationOptions);
public Uri (string uriString, in UriCreationOptions creationOptions);
new Uri : string * UriCreationOptions -> Uri
Public Sub New (uriString As String, ByRef creationOptions As UriCreationOptions)

Параметры

uriString
String

Строка, позволяющая идентифицировать ресурсы, которые должны быть представлены с помощью экземпляра Uri.

creationOptions
UriCreationOptions

Параметры, управляющие созданием и поведением Uri .

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

Uri(String, UriKind)

Инициализирует новый экземпляр класса Uri с заданным универсальным кодом ресурса. Этот конструктор позволяет указать, содержится ли в строке универсального кода ресурса относительный универсальный код ресурса, абсолютный универсальный код ресурса или неопределенный вариант.

public:
 Uri(System::String ^ uriString, UriKind uriKind);
public Uri (string uriString, UriKind uriKind);
new Uri : string * UriKind -> Uri
Public Sub New (uriString As String, uriKind As UriKind)

Параметры

uriString
String

Строка, позволяющая идентифицировать ресурсы, которые должны быть представлены с помощью экземпляра Uri. Обратите внимание на то, что IPv6-адрес в строковой форме должен заключаться в скобки. Пример: "http://[2607:f8b0:400d:c06::69]".

uriKind
UriKind

Указывает, содержится ли в строке универсального кода ресурса относительный универсальный код ресурса, абсолютный универсальный код ресурса или неопределенный вариант.

Исключения

uriKind недопустим.

uriString имеет значение null.

Примечание. В .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса FormatException.

uriString содержит относительный URI, и uriKindAbsolute.

or

uriString содержит абсолютный URI, и uriKindRelative.

or

Параметр uriString пуст.

-или-

Схема, указанная в uriString, неправильно сформирована. См. раздел CheckSchemeName(String).

-или-

uriString содержит слишком много знаков косой черты.

-или-

Пароль, указанный в uriString, является недопустимым.

-или-

Имя узла, указанное в uriString, является недопустимым.

-или-

Имя файла, указанное в uriString, является недопустимым.

-или-

Имя пользователя, указанное в uriString, является недопустимым.

-или-

Имя узла или центра, указанное в uriString, не может заканчиваться обратной косой чертой.

-или-

Номер порта, указанный в uriString, является недопустимым или не поддается анализу.

-или-

Длина uriString превышает 65 519 символов.

-или-

Длина схемы, заданной в uriString, превышает 1023 символа.

-или-

Имеется недопустимая последовательность символов в uriString.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Комментарии

Относительные и абсолютные URI имеют разные ограничения на их формат. Например, относительный URI не требует схемы или центра. Указанное значение uriKind должно соответствовать типу переданного uriStringURI. Однако если RelativeOrAbsolute он указан, строка универсального кода ресурса (URI) может быть относительной или абсолютной.

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

Uri(Uri, String)

Инициализирует новый экземпляр класса Uri на основе заданного базового универсального кода ресурса и строки относительного универсального кода ресурса.

public:
 Uri(Uri ^ baseUri, System::String ^ relativeUri);
public Uri (Uri baseUri, string relativeUri);
public Uri (Uri baseUri, string? relativeUri);
new Uri : Uri * string -> Uri
Public Sub New (baseUri As Uri, relativeUri As String)

Параметры

baseUri
Uri

Базовый универсальный код ресурса.

relativeUri
String

Относительный универсальный код ресурса, добавляемый к базовому.

Исключения

baseUri имеет значение null.

baseUri не является абсолютным экземпляром Uri.

Примечание. В .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса FormatException.

URI, сформированный путем объединения baseUri и relativeUri, пуст или содержит только пробелы.

-или-

Схема, заданная в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

URI, сформированный путем объединения baseUri и relativeUri, содержит слишком много косых черт.

-или-

Пароль, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

Имя узла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя файла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя пользователя, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя узла или центра, заданное в URI, сформированном путем объединения baseUri и relativeUri, не может заканчиваться обратной косой чертой.

-или-

Номер порта, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым или не поддается анализу.

-или-

Длина URI, сформированного путем объединения baseUri и relativeUri, превышает 65 519 знаков.

-или-

Длина схемы, заданной в URI, сформированном путем объединения baseUri и relativeUri, превышает 1023 знака.

-или-

Имеется недопустимая последовательность символов в URI, сформированном путем объединения baseUri и relativeUri.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Примеры

В следующем примере создается новый экземпляр класса путем объединения относительных URI и catalog/shownew.htm формирования абсолютного универсального Uri кода ресурса (URIhttp://www.contoso.com/catalog/shownew.htm).http://www.contoso.com

Uri^ baseUri = gcnew Uri(  "http://www.contoso.com" );
Uri^ myUri = gcnew Uri( baseUri, "catalog/shownew.htm" );
Console::WriteLine( myUri->ToString() );
Uri baseUri = new Uri("http://www.contoso.com");
 Uri myUri = new Uri(baseUri, "catalog/shownew.htm");

Console.WriteLine(myUri.ToString());
let baseUri = Uri "http://www.contoso.com"
let myUri = Uri(baseUri, "catalog/shownew.htm")

printfn $"{myUri}"
Dim baseUri As New Uri("http://www.contoso.com")
Dim myUri As New Uri(baseUri, "catalog/shownew.htm")

Console.WriteLine(myUri.ToString())

Комментарии

Этот конструктор создает Uri экземпляр, объединяя baseUri и relativeUri. Если relativeUri это абсолютный URI (содержащий схему, имя узла и при необходимости номер порта), Uri экземпляр создается только relativeUriс помощью .

Если относительные baseUri части (например /api), относительная часть должна быть завершена косой чертой (например /api/), если относительная часть baseUri должна быть сохранена в конструированном Uriобъекте.

Кроме того, если relativeUri начинается косая черта, она заменит любую относительную часть baseUri

Этот конструктор не гарантирует, что Uri он ссылается на доступный ресурс.

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

Uri(Uri, Uri)

Инициализирует новый экземпляр класса Uri на основе сочетания заданного базового экземпляра Uri и относительного экземпляра Uri.

public:
 Uri(Uri ^ baseUri, Uri ^ relativeUri);
public Uri (Uri baseUri, Uri relativeUri);
new Uri : Uri * Uri -> Uri
Public Sub New (baseUri As Uri, relativeUri As Uri)

Параметры

baseUri
Uri

Абсолютный Uri, являющийся основой для нового экземпляра Uri.

relativeUri
Uri

Экземпляр относительного Uri, объединяемый с объектом baseUri.

Исключения

baseUri не является абсолютным экземпляром Uri.

baseUri имеет значение null.

baseUri не является абсолютным экземпляром Uri.

Примечание. В .NET для приложений Магазина Windows или в переносимой библиотеке классов перехватите исключение базового класса FormatException.

URI, сформированный путем объединения baseUri и relativeUri, пуст или содержит только пробелы.

-или-

Схема, заданная в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

URI, сформированный путем объединения baseUri и relativeUri, содержит слишком много косых черт.

-или-

Пароль, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

Имя узла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя файла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя пользователя, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя узла или центра, заданное в URI, сформированном путем объединения baseUri и relativeUri, не может заканчиваться обратной косой чертой.

-или-

Номер порта, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым или не поддается анализу.

-или-

Длина URI, сформированного путем объединения baseUri и relativeUri, превышает 65 519 знаков.

-или-

Длина схемы, заданной в URI, сформированном путем объединения baseUri и relativeUri, превышает 1023 знака.

-или-

Имеется недопустимая последовательность символов в URI, сформированном путем объединения baseUri и relativeUri.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Примеры

В этом примере создается абсолютный Uri экземпляр absoluteUriи относительный Uri экземпляр relativeUri. Затем создается новый Uri экземпляр combinedUriиз этих двух экземпляров.

// Create an absolute Uri from a string.
String^ addressString1 = "http://www.contoso.com/";
String^ addressString2 = "catalog/shownew.htm?date=today";
Uri^ absoluteUri = gcnew Uri(addressString1);

// Create a relative Uri from a string.  allowRelative = true to allow for 
// creating a relative Uri.
Uri^ relativeUri = gcnew Uri(addressString2);

// Check whether the new Uri is absolute or relative.
if (  !relativeUri->IsAbsoluteUri )
   Console::WriteLine( "{0} is a relative Uri.", relativeUri );

// Create a new Uri from an absolute Uri and a relative Uri.
Uri^ combinedUri = gcnew Uri( absoluteUri,relativeUri );
Console::WriteLine( combinedUri->AbsoluteUri );
// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

// Create a relative Uri from a string.  allowRelative = true to allow for
// creating a relative Uri.
Uri relativeUri = new Uri("/catalog/shownew.htm?date=today", UriKind.Relative);

// Check whether the new Uri is absolute or relative.
if (!relativeUri.IsAbsoluteUri)
    Console.WriteLine("{0} is a relative Uri.", relativeUri);

// Create a new Uri from an absolute Uri and a relative Uri.
Uri combinedUri = new Uri(absoluteUri, relativeUri);
Console.WriteLine(combinedUri.AbsoluteUri);
// Create an absolute Uri from a string.
let absoluteUri = Uri "http://www.contoso.com/"

// Create a relative Uri from a string.  allowRelative = true to allow for
// creating a relative Uri.
let relativeUri = Uri("/catalog/shownew.htm?date=today", UriKind.Relative)

// Check whether the new Uri is absolute or relative.
if not relativeUri.IsAbsoluteUri then
    printfn $"{relativeUri} is a relative Uri."

// Create a new Uri from an absolute Uri and a relative Uri.
let combinedUri = Uri(absoluteUri, relativeUri)
printfn $"{combinedUri.AbsoluteUri}"
    ' Create an absolute Uri from a string.
    Dim absoluteUri As New Uri("http://www.contoso.com/")
    
    ' Create a relative Uri from a string.  allowRelative = true to allow for 
    ' creating a relative Uri.
    Dim relativeUri As New Uri("/catalog/shownew.htm?date=today")
    
    ' Check whether the new Uri is absolute or relative.
    If Not relativeUri.IsAbsoluteUri Then
        Console.WriteLine("{0} is a relative Uri.", relativeUri)
    End If 
    ' Create a new Uri from an absolute Uri and a relative Uri.
    Dim combinedUri As New Uri(absoluteUri, relativeUri)
    Console.WriteLine(combinedUri.AbsoluteUri)

End Sub

Комментарии

Этот конструктор создает новый Uri экземпляр путем объединения абсолютного Uri экземпляра с baseUriотносительным Uri экземпляром relativeUri. Если relativeUri это абсолютный Uri экземпляр (содержащий схему, имя узла и при необходимости номер порта), Uri экземпляр создается только relativeUriс помощью .

Если относительные baseUri части (например /api), относительная часть должна быть завершена косой чертой (например /api/), если относительная часть baseUri должна быть сохранена в конструированном Uriобъекте.

Кроме того, если relativeUri начинается косая черта, она заменит любую относительную часть baseUri

Этот конструктор не гарантирует, что Uri он ссылается на доступный ресурс.

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

Uri(Uri, String, Boolean)

Внимание!

The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202

Внимание!

This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.

Внимание!

The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202

Инициализирует новый экземпляр класса Uri на основе заданных базового и относительного универсального кода ресурса с явным управлением преобразованием в escape-последовательность.

public:
 Uri(Uri ^ baseUri, System::String ^ relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string? relativeUri, bool dontEscape);
[System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")]
public Uri (Uri baseUri, string? relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
[System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")]
public Uri (Uri baseUri, string relativeUri, bool dontEscape);
[<System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. https://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : Uri * string * bool -> Uri
[<System.Obsolete("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")>]
new Uri : Uri * string * bool -> Uri
[<System.Obsolete("The constructor has been deprecated. Please new Uri(Uri, string). The dontEscape parameter is deprecated and is always false. http://go.microsoft.com/fwlink/?linkid=14202")>]
new Uri : Uri * string * bool -> Uri
new Uri : Uri * string * bool -> Uri
Public Sub New (baseUri As Uri, relativeUri As String, dontEscape As Boolean)

Параметры

baseUri
Uri

Базовый универсальный код ресурса.

relativeUri
String

Относительный универсальный код ресурса, добавляемый к базовому.

dontEscape
Boolean

Значение true, если параметр uriString полностью преобразовывается в escape-последовательность; в противном случае — значение false.

Атрибуты

Исключения

baseUri имеет значение null.

baseUri не является абсолютным экземпляром Uri.

URI, сформированный путем объединения baseUri и relativeUri, пуст или содержит только пробелы.

-или-

Схема, заданная в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

URI, сформированный путем объединения baseUri и relativeUri, содержит слишком много косых черт.

-или-

Пароль, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимой.

-или-

Имя узла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя файла, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя пользователя, заданное в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым.

-или-

Имя узла или центра, заданное в URI, сформированном путем объединения baseUri и relativeUri, не может заканчиваться обратной косой чертой.

-или-

Номер порта, заданный в URI, сформированном путем объединения baseUri и relativeUri, является недопустимым или не поддается анализу.

-или-

Длина URI, сформированного путем объединения baseUri и relativeUri, превышает 65 519 знаков.

-или-

Длина схемы, заданной в URI, сформированном путем объединения baseUri и relativeUri, превышает 1023 знака.

-или-

Имеется недопустимая последовательность символов в URI, сформированном путем объединения baseUri и relativeUri.

-или-

Путь MS-DOS, заданный в uriString, должен начинаться с c:\\.

Примеры

В следующем примере создается новый экземпляр Uri класса путем объединения относительных URI http://www.contoso.com и Hello%20World.htm формирования абсолютного URI.

Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" );
Uri^ myUri = gcnew Uri( baseUri,"Hello%20World.htm",false );
Uri baseUri = new Uri("http://www.contoso.com");
Uri myUri = new Uri(baseUri, "Hello%20World.htm",false);
let baseUri = Uri "http://www.contoso.com"
let myUri = Uri(baseUri, "Hello%20World.htm", false)
Dim baseUri As New Uri("http://www.contoso.com")
Dim myUri As New Uri(baseUri, "Hello%20World.htm", False)

Комментарии

Этот конструктор создает Uri экземпляр путем объединения baseUri и relativeUri. Если переданный relativeUri URI является абсолютным URI (содержащий схему, имя узла и номер порта), Uri экземпляр создается только relativeUriс помощью .

Параметр dontEscape определяет, превратятся ли зарезервированные символы в escape-последовательности. Этот параметр следует задать true только в том случае, если вы уверены, что все зарезервированные символы в URI были экранированы. Установка значения true URI, который не был полностью экранирован, может привести к непредвиденному поведению. Настоятельно рекомендуется всегда задать для этого параметра falseзначение . Если dontEscape задано значение false, конструктор экранирует все зарезервированные символы, проверив, что за всеми вхождениями процентов (%) следует допустимая escape-последовательность. Если последовательность символов после процента недопустима, процент заменяется %25.

Этот конструктор не гарантирует, что Uri он ссылается на доступный ресурс.

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

Из-за проблем с безопасностью приложение не должно вызывать этот конструктор со строками URI из ненадежных источников и иметь dontEscape значение set to true. Кроме того, можно проверить строку URI на допустимость, вызвав IsWellFormedOriginalString() метод перед вызовом этого конструктора.

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