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 处理程序?
谢谢