Microsoft Enterprise Library를 사용하여 개체의 유효성을 검사하는 질문이 있습니다.
다른 필드에 대한 유효성 검사기가 있습니다. 는하지만 객체의 다른 필드는 다른 규칙 세트에서 (이 예처럼) 할 필요가 : 모든 규칙 세트가 고려되도록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()
의 각 호출에 대해 수동으로 지정하지 않고 모든 규칙 집합의 유효성을 검사합니까?
왜 당신이 기본 규칙 집합에서 그 검증을 지정하지 않는 것이 좋습니다? – Steven
개별 규칙 세트를 지정 했으므로 한 번에 한 필드의 유효성을 검사하는 단위 테스트를 작성할 수 있습니다. 이를 통해 "이름"필드 (및 이름 필드 만)의 유효성을 검사하는 하나의 테스트를 작성하고 "설명"필드를 검증하는 또 다른 테스트를 작성할 수 있습니다. – Ove