Проверьте коллекцию, имеющую хотя бы один элемент, с помощью блока приложения проверки - PullRequest
2 голосов
/ 21 октября 2009

Как с помощью блока прикладных программ проверки библиотеки Enterprise 4.1 проверить, что свойство коллекции содержит хотя бы один элемент?

Ответы [ 2 ]

1 голос
/ 06 января 2010

Это уже реализовано в EntLib Contrib . Это называется CollectionCountValidator.

1 голос
/ 22 октября 2009

Я предполагаю, что вы имеете в виду из коробки. Если так, то я не думаю, что есть способ проверить количество элементов в коллекции напрямую.

Вот некоторые другие способы, которые вы можете попробовать:

  1. Указ о том, что вы имеете дело только с нулевыми коллекциями, а не с пустыми коллекциями и используете Not Null Validator. Не практично, однако.

  2. Используйте самопроверку и сделайте так, чтобы объект проверял в коде, что коллекция (и) имеют правильное количество элементов. Будет работать, но приятно иметь подтверждение в файле конфигурации.

  3. Предоставить счет коллекции как свойство. Это можно сделать, предположив, например, коллекцию сотрудников, с помощью свойства EmployeeCount в вашем объекте, который содержит коллекцию, или вы можете создать свои собственные пользовательские коллекции, которые предоставляют свойство count. Затем вы можете использовать Range Validator для проверки на свойстве Count.

  4. Создайте пользовательский валидатор, который может проверять количество элементов в коллекции - что-то вроде CollectionCountRangeValidator.


Если бы я хотел что-то быстро разработать, я бы предпочел вариант 3. Однако вариант 4 хорошо согласуется с подходом Enterprise Library и также позволяет вашему классу быть независимым от требований валидации. Кроме того, вы всегда можете использовать его в своем следующем проекте. :) А кто-нибудь действительно скучает по созданию своих собственных коллекций, когда список будет хорошо работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...