我正在使用ASP.Net核心,並且我有訪問業務邏輯類(而不是控制器或操作)中的特定HTTP頭的要求。在ASP.Net中訪問HTTP頭核心業務邏輯
爲了提供這裏的配置的完整圖片,我有一個自定義的ASP.Net核心中間件,它基於一些邏輯將添加一個值到一個自定義的HTTP頭中,這是我需要訪問這個頭的值在業務邏輯類中。
目前我實現這一目標的方式是注入一個HttpContextAccessor,使用下面的DI註冊。
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
在其需要訪問HTTP頭的I類,然後使用構造器注入請求IHttpContextAccessor並使用它來訪問相關的HTTP標頭。
做上述工作正常,給我我需要的結果,在互聯網上瀏覽各種文章但是一般的共識似乎是避免使用ASP.Net核心中的HttpContext.Current。
如果以上情況,是否有更好的方法讓我的業務邏輯類訪問我的自定義中間件插入到自定義HTTP標頭中的值?
我應該清楚,雖然目前中間件正在將所需的值存儲在HTTP標頭中以供業務邏輯類使用,但我可以使用中間件的其他方法來使業務邏輯類具有所需的值如果有更好的方法。
任何問題或澄清,請讓我知道。
某些實現需要訪問上下文才能獲取值。但是,這不應該是業務層。創建一個提供所需標題值的服務。該課程將考慮上下文。然後,類抽象將成爲業務類的依賴關係 – Nkosi
實際上 - 此時正在處理上下文的服務類。我應該在這裏更具體一些,但通過參考一個業務邏輯課,我只是想明確表明這不是一個控制器或行爲。所以一般來說,傳遞一個訪問HTTP Context的服務似乎是你正在推薦的東西? –