Когда я читаю правила из файла конфигурации, я делаю что-то вроде этого:
IConfigurationSource configurationSource = new FileConfigurationSource("myvalidation.config");
var validator = ValidationFactory.CreateValidator<Salary>(configurationSource);
Файл конфигурации выглядит следующим образом:
<ruleset name="Default">
<properties>
<property name="Address">
<validator lowerBound="10" lowerBoundType="Inclusive" upperBound="15"
upperBoundType="Inclusive" negated="false" messageTemplate=""
messageTemplateResourceName="" messageTemplateResourceType=""
tag="" type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.StringLengthValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="String Length Validator" />
</property>
</properties>
</ruleset>
У меня вопрос - есть ли способ не указать имя набора правил? Мне не нужно указывать имя набора правил, если я использую атрибутивный подход и могу проверить с помощью:
ValidationResults results = Validation.Validate(salary);
Теперь при чтении из файлов конфигурации я должен указать имя набора правил. Нет перегрузки метода CreateValidator, который принимает источник конфигурации без указания имени набора правил. Кроме того, xml в файле конфигурации требует атрибута имени для набора правил