【发布时间】:2013-03-08 09:58:07
【问题描述】:
在使用 Enterprise Library 验证时,我在使用嵌套对象验证对象时应用规则集时遇到问题。如果我有以下对象
public class Person
{
[ObjectValidator]
[ObjectValidator(Ruleset = "A")]
public Address Address { get; set; }
}
public class Address
{
[StringLengthValidator(0, 32, MessageTemplate = "Invalid value '{0}' for {1}, Max length:{5}")]
public string Address1 { get; set; }
[StringLengthValidator(0, 32, MessageTemplate = "Invalid value '{0}' for {1}, Max length:{5}", Ruleset = "A")]
public string Address2 { get; set; }
}
现在如果我尝试通过调用来验证对象
ValidationResults results = Validation.Validate(myPersonObject);
我得到了我预期的默认验证,即如果 Person.Address.Address1 太长它会触发但 Person.Address.Address2 被忽略,这是预期的。
但是,如果我尝试如下调用规则集“A”的验证
ValidationResults results = Validation.Validate(myPersonObject, "A");
尽管我已经指定了规则集,但我总是得到与之前的验证调用相同的结果。 有什么建议吗?
【问题讨论】:
标签: c# validation enterprise-library enterprise-library-5