У меня есть вопрос проверки объектов с использованием Microsoft Enterprise Library.
У меня есть несколько валидаторов для разных полей.Но мне нужно, чтобы разные поля в объекте были в разных наборах правил (как в этом примере):
public class Category
{
[NotNullValidator(MessageTemplate="The category name cannot be null", Ruleset="NameRuleset")]
[StringLengthValidator(1, 200, MessageTemplate = "The category name must be between {3} and {5} characters", Ruleset = "NameRuleset")]
public string Name { get; set; }
[NotNullValidator(MessageTemplate = "The category description cannot be null", Ruleset = "DescriptionRuleset")]
[StringLengthValidator(1, 2000, MessageTemplate = "The category description must be between {3} and {5} characters", Ruleset = "DescriptionRuleset")]
public string Description { get; set; }
}
Вопрос в том, как проверить объект так, чтобы все наборы правил учитывались?
Одним из решений было бы это, но я не хочу постоянно передавать наборы правил в качестве параметров.
var result = Validation.Validate<Category>(category, new string[] { "NameRuleset", "DescriptionRuleset" });
И это будет проверять только набор правил по умолчанию (для моего примера,объект всегда будет действительным, даже если его имя длиннее 200 символов)
var result = Validation.Validate<Category>(category);
Так есть ли способ проверить все наборы правил без указания их вручную для каждого вызова Validation.Validate()
?