Ich habe einen Web-API-Endpunkt mit einem Routenparameter. Es funktioniert mit oder ohne den route-Parametertyp. Ich möchte nur wissen, warum dies im folgenden Code angeben?Warum den Typ des Routenparameters in der Web-API angeben?
[HttpGet]
[Route("{myId:int}")]
public HttpResponseMessage GetData([FromUri] int myId)
{
//code here
}
Dieser Code-Schnipsel [Route("{myId:int}")]
. Warum das int angeben? Es gibt bereits einen int in dieser [FromUri] int myId
. Wäre die Route nicht überflüssig? Gibt es einen Grund dafür?
Eigentlich nicht ganz. Sie müssen die 'Order'-Eigenschaft angeben ('[Route (" users/{id: int} ", Order = 0)]' und '[Route (" users/{name} ", Order = 1)]') . .NET Reflection garantiert keine Reihenfolge beim Lesen von Attributen, so dass sie in der falschen Reihenfolge in die Routentabelle eingegeben werden können (zufällig und möglicherweise bei verschiedenen Kompilierungen unterschiedlich). In diesem Fall muss die Route mit der Einschränkung zuerst ausgeführt werden. – NightOwl888
Wow. Ich habe heute etwas Neues gelernt. Das ist sehr elegant. Jetzt werde ich zurückgehen und einige meiner Endpunkte ändern, um dem zu entsprechen. – Luke101