帮我理解方法Validator.TryValidateObject()

Ben*_*nny 3 silverlight-4.0 wcf-ria-services

这是方法定义:

public static bool TryValidateObject(
Object instance,
ValidationContext validationContext,
ICollection<ValidationResult> validationResults,
bool validateAllProperties
Run Code Online (Sandbox Code Playgroud)

)

我感到困惑的是validateAllProperties参数,我理解它是真的 - 验证所有属性.

什么时候它是假的,不验证所有属性,但哪个属性将被验证?

Dre*_*rew 5

当属性为false时,Validator应验证对象上应用了ValidationAttribute的每个属性.这可以包括以下任何属性:CustomValidationAttribute,DataTypeAttribute,RangeAttribute,RegularExpressionAttribute,RequiredAttribute和StringLengthAttribute,以及从ValidationAttribute派生的任何其他属性.

有关详细信息,请参阅TryValidateObject方法上MSDN库.

在下面的示例中,应该验证Foo,而Bar不应该验证.

public class Example
{
  [Required(ErrorMessage = "Foo is a required property.")]
  public object Foo { get; set; }

  public object Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)