Nancy übergibt meine Abfrage- und Formularwerte an meine Handler über eine dynamic
Variable. Das folgende Beispiel zeigt Formularwerte, die über die Nancy-Anforderung z. B. an einen POST-Handler übergeben werden. Request.Form.xxx
.NancyFX: Wie überprüfe ich, ob Query-String/Form-Werte korrekt an meinen Handler übergeben wurden?
Handler
Post["/"] = _ =>
{
var userId = (string) Request.Form.userid;
if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
return HttpStatusCode.OK;
};
Sie können sehen, dass ich die userid
in einen String am Casting und dann einen String-Extension-Methode unter Verwendung zu überprüfen, ob der Wert null oder eine leere Zeichenfolge (entspricht string.IsNullOrEmpty()
) ist.
Was ich bevorzuge ist, um die Erweiterungsmethode auf dem dynamischen Typ zu haben, so dass ich meine Plausibilitätsprüfungen durchführen könnte, bevor ich irgendetwas anderes mache. Ich möchte Code wie folgt:
if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
jedoch nicht Erweiterungsmethoden für dynamic
Typen haben können. Außerdem können Sie das Vorhandensein einer Eigenschaft nicht über Reflektion prüfen. Willkommen im DLR.
Frage
Was ist die einfachste, sicherste Weg, Vorprüfungen durchzuführen, um sicherzustellen, dass die erwarteten Abfrage/Formularwerte haben meine Nancy Handler übergeben worden?
Dank