Nancy chuyển chuỗi truy vấn của tôi và các giá trị biểu mẫu cho trình xử lý của tôi qua biến số dynamic
. Ví dụ bên dưới hiển thị các giá trị biểu mẫu được chuyển đến trình xử lý POST thông qua yêu cầu Nancy, ví dụ: Request.Form.xxx
.NancyFX: Làm cách nào để kiểm tra xem các giá trị chuỗi truy vấn/biểu mẫu đã được chuyển chính xác đến trình xử lý của tôi chưa?
Handler
Post["/"] = _ =>
{
var userId = (string) Request.Form.userid;
if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
return HttpStatusCode.OK;
};
Bạn có thể thấy rằng tôi đúc các userid
thành một chuỗi và sau đó sử dụng một phương pháp mở rộng chuỗi để kiểm tra nếu giá trị là null hoặc chuỗi rỗng (tương đương với string.IsNullOrEmpty()
).
Điều tôi muốn là có phương pháp tiện ích mở rộng trên loại động nên tôi có thể thực hiện kiểm tra độ chính xác của mình trước khi thực hiện bất kỳ điều gì khác. Tôi muốn có mã như sau:
if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
Tuy nhiên, bạn không thể có phương thức mở rộng cho dynamic
loại. Ngoài ra, bạn không thể kiểm tra sự hiện diện của một thuộc tính thông qua sự phản chiếu. Chào mừng bạn đến với DLR.
Câu hỏi
, cách dễ nhất an toàn nhất để thực hiện yêu cầu kiểm tra để đảm bảo rằng các giá trị truy vấn/form dự kiến đã được thông qua để xử lý Nancy của tôi là gì?
Cảm ơn