servicestack,Validation,servicestack" /> servicestack,Validation,servicestack" />

Validation ServiceStack中基于会话的验证

Validation ServiceStack中基于会话的验证,validation,servicestack,Validation,servicestack,我有一些基于用户会话的验证逻辑。 СI从从AbstractValidator继承的类访问会话 或者是否有其他方法来检查基于RequestDTO的会话 例如,我可以为此使用过滤器(我可以通过重写的执行方法中的IRequest参数req访问会话),但我不知道如何绕过操作的主方法从过滤器类返回响应。如果我抛出异常,服务将无法正常工作,因为RequestDTO在我的项目之外声明,它不是从IReturn继承的,并且不包含ResponseStatus字段 提前感谢您提供的任何帮助(对不起我的英语)如果您的验

我有一些基于用户会话的验证逻辑。 СI从从AbstractValidator继承的类访问会话

或者是否有其他方法来检查基于RequestDTO的会话

例如,我可以为此使用过滤器(我可以通过重写的执行方法中的IRequest参数req访问会话),但我不知道如何绕过操作的主方法从过滤器类返回响应。如果我抛出异常,服务将无法正常工作,因为RequestDTO在我的项目之外声明,它不是从IReturn继承的,并且不包含ResponseStatus字段


提前感谢您提供的任何帮助(对不起我的英语)

如果您的验证器实现了
iRequestRequest
,那么它将注入当前的
IRequest
,您可以在lambda表达式中使用它,例如:

public class CustomValidator : AbstractValidator<Request>, IRequiresRequest 
{
    public IRequest Request { get; set; }
    ...
}
公共类CustomValidator:AbstractValidator,iRequestRequest
{
公共IRequest请求{get;set;}
...
}

也许我做错了什么,但即使我的验证器实现了IRequireRequest,请求也不会被注入。为了注册验证器,我使用Plugins.Add(newvalidationfeature());容器.RegisterValidators(typeof(AdminService).Assembly)@VladimirShiyanov这是lambda表达式吗?因为它在构造函数中是空的。你能举个小例子吗。我将非常感激。@VladimirShiyanov将您的问题更新为您试图做的不起作用的事情(请在以后的所有问题中也这样做,否则很难推断您试图做的事情)对不起,我不小心读了您的答案。如果我尝试从lambda表达式访问它,它将被真正注入。多谢各位。