Validation 使用验证应用程序块验证集合中至少有一项

Validation 使用验证应用程序块验证集合中至少有一项,validation,enterprise-library,Validation,Enterprise Library,使用Enterprise Library 4.1 Validation应用程序块,如何验证集合属性是否至少包含一项?我假设您指的是开箱即用。如果是这样,那么我认为没有办法直接验证集合中的项目数 以下是您可以尝试的其他一些方法: 命令您只处理空集合而不是空集合,并使用非空验证器。但这并不实际 使用自验证并让对象在代码中验证集合的项数是否正确。将工作,但最好在配置文件中进行验证 将集合计数作为属性公开。这可以实现,例如,假设一个employee集合,在包含该集合的对象上使用EmployeeCount

使用Enterprise Library 4.1 Validation应用程序块,如何验证集合属性是否至少包含一项?

我假设您指的是开箱即用。如果是这样,那么我认为没有办法直接验证集合中的项目数

以下是您可以尝试的其他一些方法:

  • 命令您只处理空集合而不是空集合,并使用非空验证器。但这并不实际

  • 使用自验证并让对象在代码中验证集合的项数是否正确。将工作,但最好在配置文件中进行验证

  • 将集合计数作为属性公开。这可以实现,例如,假设一个employee集合,在包含该集合的对象上使用EmployeeCount属性,或者您可以创建自己的自定义集合来公开count属性。然后,您可以使用范围验证器对Count属性进行验证

  • 创建一个自定义验证器,它可以验证集合中的项数——类似于CollectionCountRangeValidator



  • 如果我想快速开发一些东西,我可能会选择选项3。然而,选项4非常适合企业库方法,并且允许您的类设计独立于验证需求。此外,您还可以在下一个项目中重复使用它。:)当列表可以很好地工作时,是否有人真的错过了创建自己的集合呢?

    这已经在中实现了。
    这称为CollectionCountValidator。

    感谢您提供了一系列建议。我认为对于这一特殊要求,我将采用2自我验证。