Partilhar via


Uri Construtores

Definição

Inicializa uma nova instância da classe Uri.

Sobrecargas

Uri(String)

Inicializa uma nova instância da classe Uri com o URI especificado.

Uri(SerializationInfo, StreamingContext)
Obsoleto.

Inicializa uma nova instância da classe Uri das instâncias especificadas das classes SerializationInfo e StreamingContext.

Uri(String, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe Uri com o URI especificado, com controle explícito de escape de caractere.

Uri(String, UriCreationOptions)

Inicializa uma nova instância da classe Uri com o URI especificado e UriCreationOptionsadicionais.

Uri(String, UriKind)

Inicializa uma nova instância da classe Uri com o URI especificado. Esse construtor permite que você especifique se a cadeia de caracteres de URI é um URI relativo, um URI absoluto ou é indeterminado.

Uri(Uri, String)

Inicializa uma nova instância da classe Uri com base no URI base especificado e na cadeia de caracteres de URI relativa.

Uri(Uri, Uri)

Inicializa uma nova instância da classe Uri com base na combinação de uma instância de Uri base especificada e uma instância de Uri relativa.

Uri(Uri, String, Boolean)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe Uri com base nas URIs base e relativas especificadas, com controle explícito de escape de caractere.

Uri(String)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Inicializa uma nova instância da classe Uri com o URI especificado.

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

Parâmetros

uriString
String

Uma cadeia de caracteres que identifica o recurso a ser representado pela instância Uri. Observe que um endereço IPv6 no formulário de cadeia de caracteres deve ser colocado entre colchetes. Por exemplo, "http://[2607:f8b0:400d:c06::69]".

Exceções

uriString é null.

Observação: no .NET para aplicativos da Windows Store ou na biblioteca de classes portátil , pegue a exceção de classe base, FormatException, em vez disso.

uriString está vazio.

-ou-

O esquema especificado em uriString não está formado corretamente. Consulte CheckSchemeName(String).

-ou-

uriString contém muitas barras.

-ou-

A senha especificada no uriString não é válida.

-ou-

O nome do host especificado no uriString não é válido.

-ou-

O nome do arquivo especificado no uriString não é válido.

-ou-

O nome de usuário especificado em uriString não é válido.

-ou-

O nome do host ou da autoridade especificado em uriString não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado em uriString não é válido ou não pode ser analisado.

-ou-

O comprimento de uriString excede 65519 caracteres.

-ou-

O comprimento do esquema especificado em uriString excede 1.023 caracteres.

-ou-

Há uma sequência de caracteres inválida no uriString.

-ou-

O caminho MS-DOS especificado em uriString deve começar com c:\\.

Exemplos

O exemplo a seguir cria uma instância de Uri com o 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/")

Comentários

Esse construtor cria uma instância Uri de uma cadeia de caracteres de URI. Ele analisa o URI, coloca-o em formato canônico e faz as codificações de escape necessárias.

Esse construtor não garante que o Uri se refira a um recurso acessível.

Esse construtor pressupõe que o parâmetro string referencia um URI absoluto e é equivalente a chamar o construtor Uri com UriKind definido como Absolute. Se o parâmetro string passado para o construtor for um URI relativo, esse construtor gerará um UriFormatException.

Aplica-se a

Uri(SerializationInfo, StreamingContext)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Cuidado

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

Inicializa uma nova instância da classe Uri das instâncias especificadas das classes SerializationInfo e 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)

Parâmetros

serializationInfo
SerializationInfo

Uma instância da classe SerializationInfo que contém as informações necessárias para serializar a nova instância de Uri.

streamingContext
StreamingContext

Uma instância da classe StreamingContext que contém a origem do fluxo serializado associado à nova instância de Uri.

Atributos

Exceções

O parâmetro serializationInfo contém um URI null.

O parâmetro serializationInfo contém um URI vazio.

-ou-

O esquema especificado não está formado corretamente. Consulte CheckSchemeName(String).

-ou-

O URI contém muitas barras.

-ou-

A senha especificada no URI não é válida.

-ou-

O nome do host especificado no URI não é válido.

-ou-

O nome do arquivo especificado no URI não é válido.

-ou-

O nome de usuário especificado no URI não é válido.

-ou-

O nome do host ou da autoridade especificado no URI não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado no URI não é válido ou não pode ser analisado.

-ou-

O comprimento do URI excede 65519 caracteres.

-ou-

O comprimento do esquema especificado no URI excede 1.023 caracteres.

-ou-

Há uma sequência de caracteres inválida no URI.

-ou-

O caminho MS-DOS especificado no URI deve começar com c:\\.

Comentários

Esse construtor implementa a interface ISerializable para a classe Uri.

Confira também

  • de serialização XML e SOAP

Aplica-se a

Uri(String, Boolean)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Cuidado

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

Cuidado

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

Cuidado

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

Inicializa uma nova instância da classe Uri com o URI especificado, com controle explícito de escape de caractere.

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)

Parâmetros

uriString
String

Uma cadeia de caracteres que identifica o recurso a ser representado pela instância Uri. Observe que um endereço IPv6 no formulário de cadeia de caracteres deve ser colocado entre colchetes. Por exemplo, "http://[2607:f8b0:400d:c06::69]".

dontEscape
Boolean

true se uriString tiver escapado completamente; caso contrário, false.

Atributos

Exceções

uriString é null.

uriString está vazio ou contém apenas espaços.

-ou-

O esquema especificado em uriString não é válido.

-ou-

uriString contém muitas barras.

-ou-

A senha especificada no uriString não é válida.

-ou-

O nome do host especificado no uriString não é válido.

-ou-

O nome do arquivo especificado no uriString não é válido.

-ou-

O nome de usuário especificado em uriString não é válido.

-ou-

O nome do host ou da autoridade especificado em uriString não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado em uriString não é válido ou não pode ser analisado.

-ou-

O comprimento de uriString excede 65519 caracteres.

-ou-

O comprimento do esquema especificado em uriString excede 1.023 caracteres.

-ou-

Há uma sequência de caracteres inválida no uriString.

-ou-

O caminho MS-DOS especificado em uriString deve começar com c:\\.

Exemplos

O exemplo a seguir cria uma instância de Uri para o URI http://www.contoso.com/Hello%20World.htm. Como o URI contido é completamente escapado e está em forma canônica, o parâmetro dontEscape pode ser definido como 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)

Comentários

Esse construtor cria uma instância Uri de uma cadeia de caracteres de URI. Ele analisa o URI e o coloca em formato canônico.

O parâmetro dontEscape controla se os caracteres reservados são convertidos em sequências de escape. Esse parâmetro deve ser definido como true somente se você tiver certeza de que todos os caracteres reservados no URI foram escapados. Definir o valor como true para um URI que não foi completamente escapado pode causar um comportamento inesperado. É altamente recomendável que você sempre defina esse parâmetro como false.

Se dontEscape estiver definido como false, o construtor escapará de todos os caracteres reservados verificando se todas as ocorrências de porcentagem (%) são seguidas por uma sequência de escape válida. Se a sequência de caracteres após uma porcentagem não for válida, a porcentagem será substituída por %25.

Esse construtor não garante que o Uri se refira a um recurso acessível.

Aplica-se a

Uri(String, UriCreationOptions)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Inicializa uma nova instância da classe Uri com o URI especificado e UriCreationOptionsadicionais.

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)

Parâmetros

uriString
String

Uma cadeia de caracteres que identifica o recurso a ser representado pela instância Uri.

creationOptions
UriCreationOptions

Opções que controlam como o Uri é criado e se comporta.

Aplica-se a

Uri(String, UriKind)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Inicializa uma nova instância da classe Uri com o URI especificado. Esse construtor permite que você especifique se a cadeia de caracteres de URI é um URI relativo, um URI absoluto ou é indeterminado.

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)

Parâmetros

uriString
String

Uma cadeia de caracteres que identifica o recurso a ser representado pela instância Uri. Observe que um endereço IPv6 no formulário de cadeia de caracteres deve ser colocado entre colchetes. Por exemplo, "http://[2607:f8b0:400d:c06::69]".

uriKind
UriKind

Especifica se a cadeia de caracteres de URI é um URI relativo, URI absoluto ou indeterminado.

Exceções

uriKind é inválido.

uriString é null.

Observação: no .NET para aplicativos da Windows Store ou na biblioteca de classes portátil , pegue a exceção de classe base, FormatException, em vez disso.

uriString contém um URI relativo e uriKind é Absolute.

ou

uriString contém um URI absoluto e uriKind é Relative.

ou

uriString está vazio.

-ou-

O esquema especificado em uriString não está formado corretamente. Consulte CheckSchemeName(String).

-ou-

uriString contém muitas barras.

-ou-

A senha especificada no uriString não é válida.

-ou-

O nome do host especificado no uriString não é válido.

-ou-

O nome do arquivo especificado no uriString não é válido.

-ou-

O nome de usuário especificado em uriString não é válido.

-ou-

O nome do host ou da autoridade especificado em uriString não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado em uriString não é válido ou não pode ser analisado.

-ou-

O comprimento de uriString excede 65519 caracteres.

-ou-

O comprimento do esquema especificado em uriString excede 1.023 caracteres.

-ou-

Há uma sequência de caracteres inválida no uriString.

-ou-

O caminho MS-DOS especificado em uriString deve começar com c:\\.

Comentários

URIs relativas e absolutas têm restrições diferentes em seu formato. Por exemplo, um URI relativo não requer um esquema ou uma autoridade. O valor especificado em uriKind deve corresponder ao tipo de URI passado em uriString. No entanto, se RelativeOrAbsolute for especificado, a cadeia de caracteres de URI poderá ser relativa ou absoluta.

Aplica-se a

Uri(Uri, String)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Inicializa uma nova instância da classe Uri com base no URI base especificado e na cadeia de caracteres de URI relativa.

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)

Parâmetros

baseUri
Uri

O URI base.

relativeUri
String

O URI relativo a ser adicionado ao URI base.

Exceções

baseUri é null.

baseUri não é uma instância de Uri absoluta.

Observação: no .NET para aplicativos da Windows Store ou na biblioteca de classes portátil , pegue a exceção de classe base, FormatException, em vez disso.

O URI formado pela combinação de baseUri e relativeUri está vazio ou contém apenas espaços.

-ou-

O esquema especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O URI formado pela combinação de baseUri e relativeUri contém muitas barras.

-ou-

A senha especificada no URI formado pela combinação de baseUri e relativeUri não é válida.

-ou-

O nome do host especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do arquivo especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome de usuário especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do host ou da autoridade especificado no URI formado pela combinação de baseUri e relativeUri não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado no URI formado pela combinação de baseUri e relativeUri não é válido ou não pode ser analisado.

-ou-

O comprimento do URI formado pela combinação de baseUri e relativeUri excede 65519 caracteres.

-ou-

O comprimento do esquema especificado no URI formado pela combinação de baseUri e relativeUri excede 1023 caracteres.

-ou-

Há uma sequência de caracteres inválida no URI formada combinando baseUri e relativeUri.

-ou-

O caminho MS-DOS especificado em baseUri deve começar com c:\\.

Exemplos

O exemplo a seguir cria uma nova instância da classe Uri combinando as URIs relativas http://www.contoso.com e catalog/shownew.htm para formar o URI absoluto http://www.contoso.com/catalog/shownew.htm.

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

Comentários

Esse construtor cria uma instância Uri combinando o baseUri e o relativeUri. Se relativeUri for um URI absoluto (contendo um esquema, um nome de host e, opcionalmente, um número de porta), a instância Uri será criada usando apenas relativeUri.

Se o baseUri tiver partes relativas (como /api), a parte relativa deverá ser encerrada com uma barra (como /api/), se a parte relativa do baseUri deve ser preservada no Uriconstruído.

Além disso, se o relativeUri começar com uma barra, ele substituirá qualquer parte relativa do baseUri

Esse construtor não garante que o Uri se refira a um recurso acessível.

Aplica-se a

Uri(Uri, Uri)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Inicializa uma nova instância da classe Uri com base na combinação de uma instância de Uri base especificada e uma instância de Uri relativa.

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)

Parâmetros

baseUri
Uri

Um Uri absoluto que é a base para a nova instância de Uri.

relativeUri
Uri

Uma instância de Uri relativa que é combinada com baseUri.

Exceções

baseUri não é uma instância de Uri absoluta.

baseUri é null.

baseUri não é uma instância de Uri absoluta.

Observação: no .NET para aplicativos da Windows Store ou na biblioteca de classes portátil , pegue a exceção de classe base, FormatException, em vez disso.

O URI formado pela combinação de baseUri e relativeUri está vazio ou contém apenas espaços.

-ou-

O esquema especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O URI formado pela combinação de baseUri e relativeUri contém muitas barras.

-ou-

A senha especificada no URI formado pela combinação de baseUri e relativeUri não é válida.

-ou-

O nome do host especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do arquivo especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome de usuário especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do host ou da autoridade especificado no URI formado pela combinação de baseUri e relativeUri não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado no URI formado pela combinação de baseUri e relativeUri não é válido ou não pode ser analisado.

-ou-

O comprimento do URI formado pela combinação de baseUri e relativeUri excede 65519 caracteres.

-ou-

O comprimento do esquema especificado no URI formado pela combinação de baseUri e relativeUri excede 1023 caracteres.

-ou-

Há uma sequência de caracteres inválida no URI formada combinando baseUri e relativeUri.

-ou-

O caminho MS-DOS especificado em baseUri deve começar com c:\\.

Exemplos

Este exemplo cria uma instância de Uri absoluta, absoluteUrie uma instância de Uri relativa, relativeUri. Uma nova instância de Uri, combinedUri, é criada a partir dessas duas instâncias.

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

Comentários

Esse construtor cria uma nova instância Uri combinando uma instância de Uri absoluta, baseUri, com uma instância Uri relativa, relativeUri. Se relativeUri for uma instância de Uri absoluta (contendo um esquema, um nome de host e, opcionalmente, um número de porta), a instância Uri será criada usando apenas relativeUri.

Se o baseUri tiver partes relativas (como /api), a parte relativa deverá ser encerrada com uma barra (como /api/), se a parte relativa do baseUri deve ser preservada no Uriconstruído.

Além disso, se o relativeUri começar com uma barra, ele substituirá qualquer parte relativa do baseUri

Esse construtor não garante que o Uri se refira a um recurso acessível.

Aplica-se a

Uri(Uri, String, Boolean)

Origem:
Uri.cs
Origem:
Uri.cs
Origem:
Uri.cs

Cuidado

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

Cuidado

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

Cuidado

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

Inicializa uma nova instância da classe Uri com base nas URIs base e relativas especificadas, com controle explícito de escape de caractere.

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)

Parâmetros

baseUri
Uri

O URI base.

relativeUri
String

O URI relativo a ser adicionado ao URI base.

dontEscape
Boolean

true se baseUri e relativeUri forem completamente escapadas; caso contrário, false.

Atributos

Exceções

baseUri é null.

baseUri não é uma instância de Uri absoluta.

O URI formado pela combinação de baseUri e relativeUri está vazio ou contém apenas espaços.

-ou-

O esquema especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O URI formado pela combinação de baseUri e relativeUri contém muitas barras.

-ou-

A senha especificada no URI formado pela combinação de baseUri e relativeUri não é válida.

-ou-

O nome do host especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do arquivo especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome de usuário especificado no URI formado pela combinação de baseUri e relativeUri não é válido.

-ou-

O nome do host ou da autoridade especificado no URI formado pela combinação de baseUri e relativeUri não pode ser encerrado por barra invertida.

-ou-

O número da porta especificado no URI formado pela combinação de baseUri e relativeUri não é válido ou não pode ser analisado.

-ou-

O comprimento do URI formado pela combinação de baseUri e relativeUri excede 65519 caracteres.

-ou-

O comprimento do esquema especificado no URI formado pela combinação de baseUri e relativeUri excede 1023 caracteres.

-ou-

Há uma sequência de caracteres inválida no URI formada combinando baseUri e relativeUri.

-ou-

O caminho MS-DOS especificado em baseUri deve começar com c:\\.

Exemplos

O exemplo a seguir cria uma nova instância da classe Uri combinando as URIs relativas http://www.contoso.com e Hello%20World.htm para formar um URI absoluto.

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)

Comentários

Esse construtor cria uma instância Uri combinando baseUri e relativeUri. Se o URI passado em relativeUri for um URI absoluto (contendo um esquema, um nome de host e, opcionalmente, um número de porta), a instância Uri será criada usando apenas relativeUri.

O parâmetro dontEscape controla se os caracteres reservados são convertidos em sequências de escape. Esse parâmetro deve ser definido como true somente se você tiver certeza de que todos os caracteres reservados no URI foram escapados. Definir o valor como true para um URI que não foi completamente escapado pode causar um comportamento inesperado. É altamente recomendável que você sempre defina esse parâmetro como false. Se dontEscape estiver definido como false, o construtor escapará de todos os caracteres reservados verificando se todas as ocorrências de porcentagem (%) são seguidas por uma sequência de escape válida. Se a sequência de caracteres após uma porcentagem não for válida, a porcentagem será substituída por %25.

Esse construtor não garante que o Uri se refira a um recurso acessível.

Notas aos Chamadores

Devido a problemas de segurança, seu aplicativo não deve chamar esse construtor com cadeias de caracteres de URI de fontes não confiáveis e com dontEscape definido como true. Como alternativa, você pode verificar a validade de uma cadeia de caracteres de URI chamando o método IsWellFormedOriginalString() antes de chamar esse construtor.

Aplica-se a