Maison >développement back-end >C++ >Comment accéder à HttpContext dans ASP.NET Core après la suppression de HttpContext.Current ?
Accès à HttpContext dans ASP.NET Core : un guide
ASP.NET Core s'écarte de ses prédécesseurs en supprimant la propriété HttpContext.Current
pratique. Cet article décrit des stratégies efficaces pour accéder au contexte HTTP actuel dans vos applications ASP.NET Core.
Considérations architecturales et refactorisation
La migration à partir d'anciennes versions d'ASP.NET nécessite souvent une restructuration du code. L'accès direct à HttpContext
à partir de bibliothèques de classes distinctes doit être reconsidéré pour maintenir les meilleures pratiques d'ASP.NET Core.
Utilisation de HttpContext dans les contrôleurs
Les contrôleurs offrent un accès direct à la HttpContext
propriété :
<code class="language-csharp">public class HomeController : Controller { public IActionResult Index() { MyMethod(HttpContext); // ... other controller logic ... } public void MyMethod(Microsoft.AspNetCore.Http.HttpContext context) { string host = $"{context.Request.Scheme}://{context.Request.Host}"; // ... process HTTP context data ... } }</code>
Accès à HttpContext dans le middleware
Le middleware personnalisé utilise le paramètre HttpContext
dans sa méthode Invoke
:
<code class="language-csharp">public async Task InvokeAsync(HttpContext context) { // Access and manipulate the HttpContext here... await _next(context); }</code>
Exploiter IHttpContextAccessor
Pour les classes gérées via injection de dépendances, l'interface IHttpContextAccessor
apporte une solution :
<code class="language-csharp">public class MyService { private readonly IHttpContextAccessor _httpContextAccessor; public MyService(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public void MyMethod() { var context = _httpContextAccessor.HttpContext; // ... use the HttpContext ... } }</code>
Pensez à vous inscrire IHttpContextAccessor
dans votre méthode ConfigureServices
au sein de Startup.cs
:
<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); // ... other service registrations ... }</code>
Ces méthodes offrent des alternatives robustes à HttpContext.Current
dans ASP.NET Core, garantissant un accès efficace et conforme aux informations de contexte HTTP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!