我在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. 属性验证属性
- 7. ASP.NET MVC 2 - 属性验证
- 8. “RequiredAsSet”验证属性
- 9. jQuery验证属性
- 10. MSBuild验证属性
- 11. 验证多发性属性
- 12. MVC2验证模型还没有验证属性的属性
- 13. 对IList属性dataannotations验证
- 14. 验证注释和属性文件
- 15. aria-labelledby属性和asp.net验证程序
- 16. 自定义验证属性ASP.NET MVC
- 17. ASP.NET MVC验证:导致javascript属性?
- 18. ASP.NET MVC必须匹配验证属性
- 19. Asp.net mvc中的属性验证
- 20. 将属性注入Web API的`System.Web.Http.Filters.ActionFilterAttribute`
- 21. 验证语言属性
- 22. 验证链接href属性
- 23. MVC3类验证属性
- 24. Silverlight验证依赖属性
- 25. 验证空nepost属性
- 26. MVC3远程属性 - 验证
- 27. JSP/Servlet属性验证
- 28. 验证Maven原型属性
- 29. FluentValidation - 验证多个属性
- 30. 隐藏INT属性验证
你不应该依赖注入的属性表达[这里](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