Asp.net-Core

使用 ASP.NET Core 的 WebAPI 將依賴項注入驗證屬性

  • December 16, 2021

我正在 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 來執行數據訪問,這帶來了一些額外的挑戰。

引用自:https://stackoverflow.com/questions/39627956