我在Asp.Net Core Web Api中构建了自定义验证属性。我需要访问我的验证器中的IDataProtector以及我用来访问数据库的另一个服务。我已经搜索过,并没有找到任何文档。 ActionFilters可以选择使用ServiceFilter,但似乎没有任何选项用于验证属性。有任何想法吗?将验证属性注入验证属性Web Api Asp.Net Core
1
A
回答
1
由于验证属性通常在属性上定义,因此它们无法通过构造函数接收引用。最好如果你真的深入模型绑定,可能有些东西需要自定义以允许属性注入,但实际上我只是在Validate方法中获得对依赖项解析器的引用,并调用适当的方法。
0
使用ValidationContext的GetService()方法来获取数据库。 即
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
MyDbContext db = (MyDbContext) validationContext.GetService(typeof(MyDbContext));
//...
}
0
您可以覆盖IsValid的方法和使用validationContext解决依赖性:
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var service = (IExternalService) validationContext.GetService(typeof(IExternalService));
// use service
}
相关问题
- 1. DTO上的ASP.Net Web API验证属性?
- 2. 模型验证:RequireIfNull属性(ASP.NET Core)
- 3. 验证模型属性WCF Web APi
- 4. 验证属性
- 5. 验证属性
- 6. ASP.NET MVC 2 - 属性验证
- 7. 属性验证属性
- 8. XSD属性验证
- 9. MSBuild验证属性
- 10. jQuery验证属性
- 11. “RequiredAsSet”验证属性
- 12. ServiceStack,验证属性
- 13. ASP.NET WEB API - 如果属性级别验证失败,则不会调用类级别的验证属性
- 14. 验证多发性属性
- 15. Validator.TryValidateObject不验证属性
- 16. MVC2验证模型还没有验证属性的属性
- 17. XML验证不验证基于另一个属性的属性
- 18. Asp.net Web Api - 验证属性被调用两次
- 19. Hibernate验证器 - 验证嵌套属性
- 20. 范围验证属性没有验证
- 21. 比较属性不验证属性
- 22. XSD验证属性等于父属性
- 23. ASP.Net MVC 4自定义验证属性依赖注入
- 24. 对IList属性dataannotations验证
- 25. 验证注释和属性文件
- 26. 属性表数据验证
- 27. 自动属性验证
- 28. ASP.NET MVC必须匹配验证属性
- 29. 自定义验证属性ASP.NET MVC
- 30. aria-labelledby属性和asp.net验证程序
你不应该依赖注入的属性表达[这里](https://stackoverflow.com/a/ 29916075/264697),[这里](http://blog.ploeh.dk/2014/06/13/passive-attributes/)和[这里](https://www.cuttingedge.it/blogs/steven/pivot /entry.php?id=97)。 – Steven