Поделиться через


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

Определение

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

Перегрузки

Uri(String)

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

Uri(SerializationInfo, StreamingContext)
Устаревшие..

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

Uri(String, Boolean)
Устаревшие..
Устаревшие..
Устаревшие..

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

Uri(String, UriCreationOptions)

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

Uri(String, UriKind)

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

Uri(Uri, String)

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

Uri(Uri, Uri)

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

Uri(Uri, String, Boolean)
Устаревшие..
Устаревшие..
Устаревшие..

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

Uri(String)

Исходный код:
Uri.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса (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 превышает 65519 символов.

-или-

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

-или-

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

-или-

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

Примеры

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

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.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Внимание!

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Инициализирует новый экземпляр класса 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);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected Uri (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
new Uri : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> Uri
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
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 превышает 65519 символов.

-или-

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

-или-

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

-или-

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

Комментарии

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

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

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

Uri(String, Boolean)

Исходный код:
Uri.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Внимание!

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 с указанным универсальным кодом ресурса (URI) с явным контролем экранирования символов.

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 полностью экранирован; в противном случае false.

Атрибуты

Исключения

uriString null.

uriString пусто или содержит только пробелы.

-или-

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

-или-

uriString содержит слишком много косых черт.

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

Примеры

В следующем примере создается экземпляр Uri для http://www.contoso.com/Hello%20World.htmURI. Так как автономный универсальный код ресурса (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.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Инициализирует новый экземпляр класса 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.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Инициализирует новый экземпляр класса Uri с указанным универсальным кодом ресурса (URI). Этот конструктор позволяет указать, является ли строка URI относительной URI, абсолютным универсальным кодом ресурса (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

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

Исключения

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

uriString null.

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

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

или

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

или

uriString пуст.

-или-

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

-или-

uriString содержит слишком много косых черт.

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

-или-

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

Комментарии

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

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

Uri(Uri, String)

Исходный код:
Uri.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Инициализирует новый экземпляр класса Uri на основе указанного базового URI и относительной строки 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

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

relativeUri
String

Относительный универсальный код ресурса (URI), добавляемый в базовый универсальный код ресурса (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 превышает 65519 символов.

-или-

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

-или-

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

-или-

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

Примеры

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

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.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Инициализирует новый экземпляр класса 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 превышает 65519 символов.

-или-

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

-или-

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

-или-

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

Примеры

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

// 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)

Исходный код:
Uri.cs
Исходный код:
Uri.cs
Исходный код:
Uri.cs

Внимание!

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

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

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

relativeUri
String

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

dontEscape
Boolean

true, если baseUri и relativeUri полностью экранируются; в противном случае 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 превышает 65519 символов.

-или-

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

-или-

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

-или-

Путь MS-DOS, указанный в baseUri, должен начинаться с 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. Если URI, переданный в relativeUri, является абсолютным URI (содержащий схему, имя узла и номер порта), экземпляр Uri создается только с помощью relativeUri.

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

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

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

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

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