我已经多次实现 IValidatableObject
并且从未发现将 ValidationContext
解析为 Validate 方法的目的是什么 - 我的典型 IValidatableObject
实现看起来像这样:
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Prop1 == Prop2)
{
yield return new ValidationResult(
"Prop1 and Prop2 must be different.",
new[] {"Prop1", "Prop2"});
}
}
有没有什么我可以使用 validationContext
来实现的?
编辑:我正在使用 ASP.NET MVC,这是在类中实现的——而不是在 Controller 中。
最佳答案
ValidationContext
包含 IServiceProvider
属性。它是将 DI 容器传递给验证属性和验证方法的扩展点。
例如,您可以使用它来针对数据库进行验证,而无需在模型中设置对 dbcontext 的依赖性。
关于c# - 实现 IValidatableObject 时 ValidationContext 的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498977/