.net 4.0 使用.net 4中的ValidationAttribute验证私有属性

.net 4.0 使用.net 4中的ValidationAttribute验证私有属性,.net-4.0,validationattribute,.net 4.0,Validationattribute,我有通过构造函数设置私有属性的类 然后,我想从基类运行以下代码,以检查传递的值是否正常: ValidationContext=新的ValidationContext(this,null,null) ValidationResults=新建 List() 问题是,TryValidateObject只验证公共属性。有什么方法可以验证私有属性吗?我会在构造函数的参数上使用代码契约。没有使用代码契约,是的,但看起来很有希望。。。有没有一种简单的方法可以重新使用ValidationAttributes(我

我有通过构造函数设置私有属性的类

然后,我想从基类运行以下代码,以检查传递的值是否正常: ValidationContext=新的ValidationContext(this,null,null)

ValidationResults=新建 List()


问题是,TryValidateObject只验证公共属性。有什么方法可以验证私有属性吗?

我会在构造函数的参数上使用代码契约。

没有使用代码契约,是的,但看起来很有希望。。。有没有一种简单的方法可以重新使用ValidationAttributes(我都编写了allready)来执行代码契约?@AyKarsi:代码契约是有条件编译的,甚至可能由编译器进行静态检查。属性在运行时通过基于反射的机制进行验证。你有规格吗?如果是这样,您可以编写单元测试或代码契约,或者混合编写。
if (!System.ComponentModel.DataAnnotations.Validator.TryValidateObject(this, context, ValidationResults, true))
{
    this.Success = false;
    this.StatusCode = CommandStatusCode.ValidationFailed;
    return false;
}
return true;