我们的很多架构都围绕命令 ICommandHandler。我们将 Command 模型发布到控制器动作。然后通过运行 ICommandValidator 的验证器(如果它被 DI 找到)在每个操作中验证命令/模型。然后通过合并从 IComamndValidator 返回的错误来更新 ModelState。
命令验证器是域模型项目的一部分(并且根据启用的客户端/功能等具有各种实现)。我们希望使用域模型中的验证器,因为它们也用于项目的非 MVC 端。
有谁知道我们可以在 ICommandValidator 中挂钩的扩展点,以让它们在操作开始之前运行。我见过 ModelValidatorProviders 但似乎不是我们需要的。我们想注入一个命令验证器(如果存在),运行验证器,并在动作开始之前更新 ModelState。使用过滤器等似乎不正确,因为我认为我缺少/误解了一个扩展点。
任何想法表示赞赏