Нэнси передает мою строку запроса и формирует значения моим обработчикам через переменную dynamic
. В приведенном ниже примере показаны значения формы, передаваемые в обработчик POST через запрос Nancy, например. Request.Form.xxx
.NancyFX: Как проверить правильность передачи значений строки запроса/формы в мой обработчик?
Handler
Post["/"] = _ =>
{
var userId = (string) Request.Form.userid;
if (userId.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
return HttpStatusCode.OK;
};
Вы можете видеть, что я заливкой userid
в строку, а затем с помощью метода расширения строки, чтобы проверить, если значение равно нулю или пустая строка (эквивалент string.IsNullOrEmpty()
).
Что бы я хотел, это иметь метод расширения для динамического типа, чтобы я мог выполнять свои проверки на работоспособность перед тем, как делать что-либо еще. Я хочу, чтобы такой код:
if(Request.Form.userid.IsEmpty()) return HttpStatusCode.UnprocessableEntity;
Однако, вы не можете иметь методы расширения для dynamic
типов. Кроме того, вы не можете проверить наличие свойства через отражение. Добро пожаловать в DLR.
Вопрос
Что это самый простой, безопасный способ выполнить предварительные проверки, чтобы убедиться, что ожидаемые значения запроса/формы были переданы в мой обработчик Нэнси?
Благодаря