0

我正在寻找使用验证应用程序块的基于配置的验证示例。我找到了这个

我想问是否有人有替代解决方案来使用 EL VAB 5.0 来实现基于配置的验证。我从 DataAnnotations 开始,但很快发现某些属性需要不同类型的验证,具体取决于谁在使用应用程序。

此外,如果有人有更多关于 VAB 配置的示例以及关于我可能遇到的任何建议,请分享。

4

1 回答 1

0

您可以通过多种途径来实现这一目标。首先,您可以(ab)为此使用规则集。您可以创建一个“基本”规则集,其中包含适用于所有人的规则,并且您可以为系统中的每个角色创建一个规则集,甚至可能为每个用户创建一个规则集,但这当然会很麻烦。

另一种选择是创建一个IConfigurationSource能够ValidationSettings根据登录用户返回实例的实现。现在有几种方法可以构建ValidationSettings对象。这里有一些例子:

  1. FileConfigurationSource您可以使用基于角色从磁盘加载多个配置文件。就像是:return (new FileConfigurationSource('validation_' + role + '.config')).GetSection(sectionName);
  2. 您可以动态构建ValidationSettings实例(并缓存它们)。您可以将此定义存储在数据库中并加载它们(这将是很多工作)或在代码中定义它们(可能由程序集分隔)。这是基于代码的配置的示例

此外,为了避免重复部分配置,您可以执行以下操作:

  1. 将多个配置合并在一起。例如,您可以将基线验证与角色特定验证合并。这使您不必根据基线手动验证并为特定于角色的验证进行第二次验证。虽然开箱即用不支持此功能,但我在此处的博客上写了有关如何执行此操作的信息。
  2. 您可以基于类型继承合并规则。虽然 VAB 仅支持开箱即用的基于属性的验证的验证器继承,但我已经在我的博客here上写过这个。

我希望这有帮助。

于 2010-08-31T07:19:20.807 回答