Проблемы с наследованием и проверкой ApplicationCollectionValidator блока приложения - PullRequest
1 голос
/ 11 декабря 2010

Извините, если раньше об этом спрашивали, я попробовал много комбинаций ключевых слов, чтобы описать проблему, но не смог найти ничего в Google или SO.

Проблема проста: у меня естьСписок объектов.Я пометил этот список ObjectCollectionValidator, чтобы объекты были проверены.Однако некоторые объекты в списке относятся не к типу T, а к некоторому производному типу.

Эти производные типы имеют свойства, отсутствующие у их родителей, которые необходимо проверить.Они просто не будут.Я считаю, что VAB не проверяет унаследованные типы при работе с ObjectCollectionValidator, но на мой взгляд, это недостаток, поэтому я надеюсь, что ошибаюсь.

Кстати, я используюEntLib 4.1 (и хотя я хотел, я не могу переключиться на EntLib 5.0).

1 Ответ

2 голосов
/ 12 декабря 2010

То, что вы видите, - это особенность дизайна VAB 4.1, которая была решена в VAB 5.0. В VAB 5.0, когда вы украшаете свойство коллекции с помощью ObjectCollectionValidatorAttribute, вы можете не указывать фактический тип, и в этом случае валидатор будет проверять объекты по их фактическому типу.

Если вы не можете переключиться на VAB 5.0, единственное, что вы можете сделать, - это написать собственный валидатор коллекции объектов. Это не очень сложно. Достаточно взглянуть на источник ObjectCollectionValidatorAttribute и ObjectCollectionValidator VAB 5.0.

Удачи.

...