UriTemplate.BindByPosition(Uri, String[]) Metodo

Definizione

Crea un nuovo URI a partire dal modello e da una matrice di valori di parametro.

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

Parametri

baseAddress
Uri

Oggetto Uri contenente l'indirizzo di base.

values
String[]

Valori di parametro.

Restituisce

Uri

Nuova istanza di Uri.

Esempio

Nell'esempio seguente viene illustrato come chiamare il metodo 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")

Commenti

I valori di parametro sono associati in base alla posizione da sinistra verso destra. Il primo valore di parametro sostituisce la prima variabile trovata nel modello, il secondo valore di parametro sostituisce la seconda variabile e così via. Le variabili passate a questo metodo sono precedute da caratteri di escape.

Nota

Il numero di parametri passati nel parametro dei valori deve corrispondere al numero di variabili contenute nel modello. In caso contrario, viene generata un'eccezione FormatException.

Nota

Per evitare che l'URI generato corrisponda al modello utilizzato per generarlo è possibile passare elementi di testo all'interno della matrice dei valori di parametro. Esempi di testo di questo tipo sono: '/', '.','..', '*', '{' e '}'. Questo concetto è illustrato nel codice riportato di seguito.

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

Si applica a