ServiceStack验证程序 - 请求未注入

时间:2016-05-17 01:52:44

标签: servicestack

我有一个验证器,我正在尝试使用一些会话变量作为验证逻辑的一部分,但是base.Request总是返回NULL。我已按照指示将其添加到lambda函数中,并且验证文档似乎已过时,因为Fluent validation for request dtos部分中的提示使用IRequiresHttpRequest,但AbstractValidator类已实现{ {1}}。

这是我的代码:

IRequiresRequest

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:4)

只能在RuleFor() lambda中访问注入的依赖项,RuleSet()中的委托在构造函数初始化时执行,以设置该RuleSet的规则。

因此,您需要将base.Request的访问权限更改为RuleFor() lambda:

RuleSet(ApplyTo.Post | ApplyTo.Put, () => {
  RuleFor(c => c.Reference)
    .Must(x => !string.IsNullOrEmpty(x) && 
    (Request.GetSession() as CustomAuthSession).Region.GetCountry() == RegionCodes.AU);
});