自定义流利验证器

2024-02-14

我对使用 fluidvalidator 非常陌生。我所知道的只是基本的rulefor()但说到习惯我就完全无能为力了。有人可以指导我吗?

我需要验证可为空的布尔属性。我需要比较 5 个 bool 属性,如果至少选择了其中之一,则它应该返回 true 且有效,否则,它应该返回 false 并提示一条错误消息,表明至少选择了其中之一。 以下是我想出的但不起作用的内容。

public class NullableValidator : AbstractValidator<bool>
{

    public bool isQualificationSet(tblNeutralFileMaint neutral)
    {
        if (neutral.MediationCivil==false && !neutral.CaseEvalCondemnation==false &&        neutral.MediationMagistrate==false && neutral.CaseEvalTorts==false && neutral.CaseEvalDomesticViolence==false)
            return false;
        else return true;
    }
} 

我这样使用它:

RuleFor(n => n.IsQualificationSet).SetValidator(new NullableValidator());

谁能告诉我怎么做?现在已经为此工作了几个小时。它没有显示任何错误,但不起作用或转到该方法。


我不完全确定我理解你想要做什么。您是否希望仅当 IsQualificationSet 属性设置为 true 时才执行此规则?我不明白 IsQualificationSet 和其他属性之间的关系。


不管怎样,如果你想构建一个自定义属性验证器,那么它需要继承PropertyValidator基类(AbstractValidator用于验证顶级对象)。有关于此的文档可用).

因此,自定义属性验证器看起来像这样:

public class QualificationSetValidator : PropertyValidator {
    // Default error message specified in the base ctor
    // but it can be overriden using WithMessage in the RuleFor call
    public QualificationSetValidator() : base("At least one property must be selected.") {

    }

    protected override bool IsValid(PropertyValidatorContext context) {
        // You can retrieve a reference to the object being validated 
        // through the context.Instance property
        tblNeutralFileMaint neutral = (tblNeutralFileMaint)context.Instance;

        // You can also retrieve a reference to the property being validated
        // ...using context.PropertyValue

        // here is where you can do the custom validation
        // and return true/false depending on success.

     }
 }

作为定义自定义属性验证器类的替代方法,您还可以使用 PredicateValidator(“必须”方法)内嵌定义自定义规则 - 如果自定义逻辑很简单,这是一种更好的方法。有.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义流利验证器 的相关文章

  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • ServiceConnection.onServiceConnected() 和 startService()

    我有一个非常简单的活动 public class MainActivity extends Activity private Intent serviceIntent public MainService mainService publi
  • 我可以在 Ruby on Rails 上编写 PostgreSQL 函数吗?

    我们正在启动一个基于 Ruby on Rails 的项目 我们曾经使用 Perl 和 PostgreSQL 函数 以及 Rails 和 Active Record 我还没有看到我们应该如何在 PostgreSQL 中创建函数并使用 Acti
  • PHP HTML 显示按钮属性

    我希望能够从按钮中获取尽可能多的属性来显示 按钮
  • 如何从存储在列表中的对象中获取特定字段值的列表?

    假设我有一个包含两个字段的对象列表field1 and field2 都是String类型 我如何获得所有的列表field1如果可能的话 无需迭代列表即可值 幸运的是 您可以使用以下方法来做到这一点Java 8 流 https www tu
  • 如何使用Goutte获取元描述内容

    您能帮我找到一种使用 Goutte 从元描述 元关键字和机器人内容中获取内容的方法吗 另外 我该如何定位 and
  • 如何在 prisma 管理的 postgresql 数据库上创建触发器?

    晚上好 我正在使用nodejs prisma postgresql 开发一个聊天应用程序 我希望在特定聊天中创建最后一条消息后 24 小时内立即从 postgresql 数据库中删除 为此 我创建了一个触发器 function creati
  • 累积的使用

    我正在解决一个问题 我使用cumulatives 2 3 谓词 但是当我尝试将其与minimize in labeling 我有以下演示 10 个任务 全部持续时间为 1 4 台机器 全部容量 1 我的目标是尽量减少总时间 即minimiz
  • 三重继承会导致元类冲突......有时

    看起来我偶然发现了一个元类地狱 即使我不想与之有任何关系 我正在使用 PySide 在 Qt4 中编写一个应用程序 我想将事件驱动部分与 UI 定义分开 UI 定义是从 Qt Designer 文件生成的 因此 我创建了一个 控制器 类 但
  • 新的 MySQL 驱动程序导致 java.sql.SQLNonTransientConnectionException:需要 CLIENT_PLUGIN_AUTH

    如果更改 MySQL JDBC 驱动程序5 1 38 to 6 0 2我得到以下异常 java sql SQLNonTransientConnectionException CLIENT PLUGIN AUTH is required 该异
  • 函数模板实例化和友元声明

    我刚刚开始学习 C 模板 出于练习目的 编写了这个简单的代码 include
  • heroku -- npm 安装后脚本根据环境运行 grunt 任务

    我有两个 Heroku Node js 应用程序 一个用于产品 一个用于开发 我还有一个包含开发和产品特定任务的 Gruntfile 我知道您可以设置 package json 来运行 grunt 作为 npm 的安装后挂钩 但是您可以根据
  • 通俗地描述.NET程序集循环依赖问题

    请通俗地描述一下 NET程序集编译循环依赖问题 以及其他技术是否有类似的限制 注意 我知道 这似乎是一个简单的问题 但我见过许多真实的 重要的项目 它们完全破坏了依赖关系图 与任何其他循环依赖相同 考虑三个组件 A B 和 C A 需要 B
  • 优化容量利用率的算法

    我为自己设定了一个 简单 的 C 编程挑战 以优化容量 我第一次尝试时表现不佳 如下文所述 因此我想看看是否有一个标准化算法可以做到这一点 而不使用人工智能 启发式技术 因为我根本不知道它们 我相信有一种已知的方法可以做到这一点 因为该问题
  • Rails 4 中 before_action 返回 false 有何作用?

    我正在阅读 使用Rails 4进行敏捷Web开发 第1页 338 它说 回调可以是被动的 监视控制器执行的活动 他们还可以更积极地参与请求处理 如果之前操作回调返回 false 则回调链的处理将终止 并且不会运行该操作 现在我的疑问如下 这
  • SQL Server 在一次调用中返回两次结果?

    我已将 SQL Server 数据库连接到简单的 Node js 服务器 当我运行代码时 我得到了记录集和返回给我的记录集 它们本质上都包含相同的数据 我可以使用这个 但它似乎多余 而且直接调用我需要的记录会更整洁 我希望得到一个清晰的 E
  • 初始化列表无法在 Visual Studio 2012 中使用矢量? [复制]

    这个问题在这里已经有答案了 可能的重复 Visual Studio 2012 中的 C 11 功能 https stackoverflow com questions 7421825 c11 features in visual studi
  • 如何向 bash 提示符添加图标

    我知道你可以通过编辑 bashrc 文件中的 PS1 变量来永久编辑 bash 提示符 我的如下所示 PS1 e 0 31m
  • Snakeyaml 似乎不必要地将简单值包装在列表中

    我正在尝试使用 Groovy 和 Snakeyaml 解析以下 YAML 文件 显然我已经清理了数据 但这足以证明问题 info summary Snakeyaml Issue examples 1st example name Examp
  • oracle SQL 如何从日期中删除时间

    我有一个名为StartDate包含以下格式的日期 03 03 2012 15 22 我需要的是将其转换为日期 它应该看起来像这样 DD MM YYYY 我尝试过但没有成功的是 select p1 PA VALUE as StartDate
  • 自定义流利验证器

    我对使用 fluidvalidator 非常陌生 我所知道的只是基本的rulefor 但说到习惯我就完全无能为力了 有人可以指导我吗 我需要验证可为空的布尔属性 我需要比较 5 个 bool 属性 如果至少选择了其中之一 则它应该返回 tr