UriTemplate UriTemplate UriTemplate UriTemplate Class

Definizione

Classe che rappresenta un modello Uniform Resource Identifier (URI).A class that represents a Uniform Resource Identifier (URI) template.

public ref class UriTemplate
public class UriTemplate
type UriTemplate = class
Public Class UriTemplate
Ereditarietà
UriTemplateUriTemplateUriTemplateUriTemplate

Esempi

Nel codice seguente viene illustrato come creare un'istanza di UriTemplate e come associarla e confrontarla a un URI candidato.The following code demonstrates how to create a UriTemplate instance, and bind and match it to a candidate URI.

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

Console.WriteLine("PathSegmentVariableNames:");
foreach (string name in template.PathSegmentVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

Console.WriteLine("QueryValueVariableNames:");
foreach (string name in template.QueryValueVariableNames)
{
    Console.WriteLine("     {0}", name);
}
Console.WriteLine();

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

NameValueCollection parameters = new NameValueCollection();
parameters.Add("state", "Washington");
parameters.Add("city", "Redmond");
parameters.Add("day", "Today");
Uri namedUri = template.BindByName(prefix, parameters);

Uri fullUri = new Uri("http://localhost/weather/Washington/Redmond?forecast=today");
UriTemplateMatch results = template.Match(prefix, fullUri);

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString());

if (results != null)
{
    foreach (string variableName in results.BoundVariables.Keys)
    {
        Console.WriteLine("   {0}: {1}", variableName, results.BoundVariables[variableName]);
    }
}
Dim template As UriTemplate = New UriTemplate("weather/{state}/{city}?forecast={day}")
Dim prefix As Uri = New Uri("http://localhost")

Console.WriteLine("PathSegmentVariableNames:")
For Each name As String In template.PathSegmentVariableNames
    Console.WriteLine("     {0}", name)
Next

Console.WriteLine()
Console.WriteLine("QueryValueVariableNames:")
For Each name As String In template.QueryValueVariableNames
    Console.WriteLine("     {0}", name)
Next
Console.WriteLine()

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

Dim parameters As NameValueCollection = New NameValueCollection()
parameters.Add("state", "Washington")
parameters.Add("city", "Redmond")
parameters.Add("day", "Today")
Dim namedUri As Uri = template.BindByName(prefix, parameters)

Dim fullUri As Uri = New Uri("http://localhost/weather/Washington/Redmond?forecast=today")
Dim results As UriTemplateMatch = template.Match(prefix, fullUri)

Console.WriteLine("Matching {0} to {1}", template.ToString(), fullUri.ToString())

If results IsNot Nothing Then
    For Each variableName As String In results.BoundVariables.Keys
        Console.WriteLine("   {0}: {1}", variableName, results.BoundVariables(variableName))
    Next
End If

Commenti

Un modello URI consente di definire un set di URI strutturalmente simili.A URI template allows you to define a set of structurally similar URIs. I modelli sono composti di due parti, un percorso e una query.Templates are composed of two parts, a path and a query. Un percorso è costituito da una serie di segmenti delimitati da una barra (/).A path consists of a series of segments delimited by a slash (/). Ogni segmento può avere un valore letterale, un valore variabile (scritto tra parentesi graffe [{}], che deve corrispondere al contenuto di un solo segmento) o un carattere jolly (scritto come asterisco [*], che corrisponde al "resto del percorso") che deve essere visualizzato alla fine del percorso.Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. L'espressione di query può essere interamente omessa.The query expression can be omitted entirely. Se presente, specifica una serie non ordinata di coppie nome/valore.If present, it specifies an unordered series of name/value pairs. Gli elementi dell'espressione di query possono essere coppie letterali (?x=2) o coppie variabili (?x={valore}).Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Non è consentito usare valori non abbinati.Unpaired values are not permitted. Le stringhe seguenti rappresentano esempi validi di stringhe di modello:The following examples show valid template strings:

  • "previsioni/CA/Napoli""weather/WA/Seattle"

  • "previsioni/{regione}/{città}""weather/{state}/{city}"

  • "previsioni/*""weather/*"

  • "previsioni/{regione}/{città}?previsioni=oggi""weather/{state}/{city}?forecast=today

  • "previsioni/{regione}/{città}?previsioni={giorno}""weather/{state}/{city}?forecast={day}

I modelli URI appena elencati potrebbero essere utilizzati come struttura su cui basare le previsioni del tempo.The preceding URI templates might be used for organizing weather reports. I segmenti racchiusi fra parentesi graffe sono variabili. Gli altri segmenti rappresentano valori letterali.Segments enclosed in curly braces are variables, everything else is a literal. È possibile convertire un'istanza della classe UriTemplate in un oggetto Uri sostituendo le variabili con valori effettivi.You can convert a UriTemplate instance into a Uri by replacing variables with actual values. Ad esempio, se nel modello "previsioni/{regione}/{città}" sostituiamo valori effettivi alle variabili "{regione}" e "{città}" otteniamo l'URI "previsioni/CA/Napoli".For example, taking the template "weather/{state}/{city}" and putting in values for the variables "{state}" and "{city}" gives you "weather/WA/Seattle". Per verificare se un determinato URI candidato corrisponde a un modello URI specificato è possibile chiamare il metodo Match(Uri, Uri).Given a candidate URI, you can test whether it matches a given URI template by calling Match(Uri, Uri). Le istanze della classe UriTemplate possono inoltre essere utilizzate per creare un oggetto Uri a partire da un set di valori variabili. A tale scopo, chiamare il metodo BindByName(Uri, NameValueCollection) o BindByPosition(Uri, String[]).You can also use UriTemplate instances to create a Uri from a set of variable values by calling BindByName(Uri, NameValueCollection) or BindByPosition(Uri, String[]).

Costruttori

UriTemplate(String) UriTemplate(String) UriTemplate(String) UriTemplate(String)

Inizializza una nuova istanza della classe UriTemplate con la stringa di modello specificata.Initializes a new instance of the UriTemplate class with the specified template string.

UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean) UriTemplate(String, Boolean)

Inizializza una nuova istanza della classe UriTemplate.Initializes a new instance of the UriTemplate class.

UriTemplate(String, Boolean, IDictionary<String,String>) UriTemplate(String, Boolean, IDictionary<String,String>) UriTemplate(String, Boolean, IDictionary<String,String>) UriTemplate(String, Boolean, IDictionary<String,String>)

Inizializza una nuova istanza della classe UriTemplate.Initializes a new instance of the UriTemplate class.

UriTemplate(String, IDictionary<String,String>) UriTemplate(String, IDictionary<String,String>) UriTemplate(String, IDictionary<String,String>) UriTemplate(String, IDictionary<String,String>)

Inizializza una nuova istanza della classe UriTemplate.Initializes a new instance of the UriTemplate class.

Proprietà

Defaults Defaults Defaults Defaults

Ottiene una raccolta di coppie nome/valore per tutti i valori di parametro predefiniti.Gets a collection of name/value pairs for any default parameter values.

IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash IgnoreTrailingSlash

Specifica se le barre finali "/" presenti nel modello devono essere ignorate quando si creano corrispondenze con gli URI candidati.Specifies whether trailing slashes "/" in the template should be ignored when matching candidate URIs.

PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames PathSegmentVariableNames

Ottiene una raccolta di nomi di variabili utilizzati all'interno dei segmenti di percorso contenuti nel modello.Gets a collection of variable names used within path segments in the template.

QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames QueryValueVariableNames

Ottiene una raccolta di nomi di variabili utilizzati all'interno della stringa di query contenuta nel modello.Gets a collection of variable names used within the query string in the template.

Metodi

BindByName(Uri, IDictionary<String,String>) BindByName(Uri, IDictionary<String,String>) BindByName(Uri, IDictionary<String,String>) BindByName(Uri, IDictionary<String,String>)

Crea un nuovo URI a partire dal modello e dalla raccolta di parametri.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, IDictionary<String,String>, Boolean) BindByName(Uri, IDictionary<String,String>, Boolean) BindByName(Uri, IDictionary<String,String>, Boolean) BindByName(Uri, IDictionary<String,String>, Boolean)

Crea un nuovo URI a partire dal modello e dalla raccolta di parametri.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection) BindByName(Uri, NameValueCollection)

Crea un nuovo URI a partire dal modello e dalla raccolta di parametri.Creates a new URI from the template and the collection of parameters.

BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean) BindByName(Uri, NameValueCollection, Boolean)

Crea un nuovo URI a partire dal modello e dalla raccolta di parametri.Creates a new URI from the template and the collection of parameters.

BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[]) BindByPosition(Uri, String[])

Crea un nuovo URI a partire dal modello e da una matrice di valori di parametro.Creates a new URI from the template and an array of parameter values.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate) IsEquivalentTo(UriTemplate)

Indica se un oggetto UriTemplate è strutturalmente equivalente a un altro.Indicates whether a UriTemplate is structurally equivalent to another.

Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri) Match(Uri, Uri)

Tenta di creare una corrispondenza fra un oggetto Uri e un oggetto UriTemplate.Attempts to match a Uri to a UriTemplate.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una rappresentazione di stringa dell'istanza della classe UriTemplate.Returns a string representation of the UriTemplate instance.

Si applica a