2010-03-25 21 views

回答

1

使用自定义验证程序。

[HasSelfValidation] 
public class ValidateMe { 


    [SelfValidation] 
    public void ValidateFieldNotNul(ValidationResults validationResults) 
    { 
     .. start psudo code 
     if(xor) 
      validationResults.AddResult(new ValidationResult("One must not be null",...)); 
    } 

} 
0

验证应用程序块有一个PropertyComparisonValidator它可以让你比较一个属性与另一个属性。不幸的是,这个验证器只允许ComparisonTypeEqual, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual,所以这实际上并没有帮助你。

我觉得你有2种选择:

  • 自我验证
  • 自定义验证

自我验证(通过@Nix所示)可能是最简单的,但需要这种重新实现了每一个你有这个需求的场景(至少要把钩子称为一种常用的方法)。

创建一个custom validator将导致代码可以添加到配置或直接归因于实体,并且可以轻松地重用。

自定义验证器肯定会做更多的工作,但如果您需要重用(例如可以在应用程序中重用)或更喜欢该设计,则可能值得。

相关问题