Asp.net-Core
使用 ASP.NET Core 的 WebAPI 將依賴項注入驗證屬性
我正在 ASP.NET Core WebAPI 中建構自定義驗證屬性。我需要在我的驗證器中訪問 IDataProtector 以及我用來訪問數據庫的另一個服務。我已經搜尋過並且沒有找到任何文件。ActionFilters 可以選擇使用 ServiceFilter,但似乎沒有任何選項用於驗證屬性。有任何想法嗎?
使用 ValidationContext 的 GetService() 方法來獲取您的數據庫。IE
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { MyDbContext db = (MyDbContext) validationContext.GetService(typeof(MyDbContext)); //... }
我們有一個類似的要求,需要將額外的數據傳遞給屬性以提供足夠的上下文來執行驗證。
我們想出了一種方法來建構可以傳遞給屬性的上下文對象。我在這裡寫了部落格。
我們正在使用非同步 api 來執行數據訪問,這帶來了一些額外的挑戰。