Nancy將我的查詢字符串和值通過dynamic
變量傳遞給我的處理程序。下面的例子顯示了通過Nancy請求傳遞給POST處理程序的表單值,例如, Request.Form.xxx
。NancyFX:如何檢查查詢字符串/表單值是否已正確傳遞給我的處理程序?
處理器
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。
問題
什麼是執行前的檢查,以確保預期的查詢/表單值已經傳遞給我的南希處理程序最簡單,最安全的方法是什麼?
感謝