ナンシーはクエリ文字列とフォーム値をdynamic
変数でハンドラに渡します。以下の例は、Nancyリクエストを介してPOSTハンドラに渡されるフォーム値を示しています。 Request.Form.xxx
。NancyFX:クエリ文字列/フォームの値がハンドラに正しく渡されているかどうかを確認するにはどうすればよいですか?
ハンドラ
Post["/"] = _ =>
{
var userId = (string) Request.Form.userid;
if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
return HttpStatusCode.OK;
};
あなたは、私が文字列にuserid
をキャストして、値が文字列(string.IsNullOrEmpty()
に相当)がnullまたは空であるかどうかを確認するために、文字列の拡張メソッドを使用していていることがわかります。
私が好むのは、ダイナミックタイプに拡張メソッドを持たせて、他に何かをする前に健全性チェックを実行できることです。私はこのようなコードをしたい:
if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
しかし、あなたはdynamic
タイプ用の拡張メソッドを持つことはできません。また、リフレクションを介してプロパティの存在を確認することはできません。 DLRへようこそ。
質問
予想されるクエリ/フォームの値が私のナンシー・ハンドラに渡されたことを確認するために、事前チェックを実行するための最も簡単な、最も安全な方法は何ですか?
おかげ