Partilhar via


UriTemplate.BindByPosition(Uri, String[]) Método

Definição

Cria um novo URI com base no modelo e uma matriz de valores de parâmetro.

public:
 Uri ^ BindByPosition(Uri ^ baseAddress, ... cli::array <System::String ^> ^ values);
public Uri BindByPosition (Uri baseAddress, params string[] values);
member this.BindByPosition : Uri * string[] -> Uri
Public Function BindByPosition (baseAddress As Uri, ParamArray values As String()) As Uri

Parâmetros

baseAddress
Uri

Um Uri que contém o endereço básico.

values
String[]

Os valores de parâmetro.

Retornos

Uri

Uma nova instância de Uri.

Exemplos

O exemplo a seguir mostra como chamar o BindByPosition(Uri, String[]).

UriTemplate template = new UriTemplate("weather/{state}/{city}?forecast={day}");
Uri prefix = new Uri("http://localhost");

Uri positionalUri = template.BindByPosition(prefix, "Washington", "Redmond", "Today");
Dim template As UriTemplate = New UriTemplate("weather/{state}/{city}?forecast={day}")
Dim prefix As Uri = New Uri("http://localhost")

Dim positionalUri As Uri = template.BindByPosition(prefix, "Washington", "Redmond", "Today")

Comentários

Os valores de parâmetro são associados por posição da esquerda para a direita. O primeiro valor do parâmetro substitui a primeira variável encontrada no modelo, o segundo valor do parâmetro substitui a segunda variável e assim por diante. Variáveis passadas para esse método são escapadas.

Observação

O número de parâmetros passados no parâmetro values deve corresponder ao número de variáveis no modelo. Caso contrário, um FormatException é lançado.

Observação

É possível passar texto dentro da matriz de valores de parâmetro que impede que o URI gerado corresponda ao modelo usado para gerá-lo. Exemplos desse texto incluem: '/', '.','.', '*', '{' e '}'. O código a seguir demonstra isso.

UriTemplate template = new UriTemplate("far/{bat}/baz");

Uri uri = new Uri("http://localhost/Base");

Uri result = template.BindByPosition(uri, "."); // returns Base/form/baz

Uri result = template.BindByPosition(uri, ".."); // returns Base/baz

Uri result = template.BindByPosition(uri, "x/y"); // returns Base/form/x/y/baz

Uri result = template.BindByPosition(uri, "{x}"); // returns Base/form/{x}/baz

Uri result = template.BindByPosition(uri, "*"); // returns Base/form/*/baz

Aplica-se a