在 ASP.NET Core 中,HttpContext.Current 已被棄用。本文探討了存取目前 HTTP 上下文的替代方法。
1. HttpContext 屬性
您可以透過控制器的HttpContext 屬性存取目前的HTTP 上下文:
public class HomeController : Controller { public IActionResult Index() { MyMethod(HttpContext); return View(); } private void MyMethod(Microsoft.AspNetCore.Http.HttpContext context) { // Use the HTTP context here } }
2.中間件中的HttpContext參數
在自訂ASP.NET Core 中間件中,目前HTTP 上下文會自動作為參數注入到Invoke 方法:public async Task InvokeAsync(HttpContext context) { // Use the HTTP context here }
3. HTTP Context Accessor
對於不由ASP.NET Core 依賴注入管理的類,可以使用IHttpContextAccessor 輔助服務:public class MyService { private readonly IHttpContextAccessor _httpContextAccessor; public MyService(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public void UseHttpContext() { var context = _httpContextAccessor.HttpContext; // Use the HTTP context here } }
public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); // ... }
以上是如何在 ASP.NET Core 中存取 HttpContext?的詳細內容。更多資訊請關注PHP中文網其他相關文章!