我在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