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