Maison > développement back-end > C++ > Comment accéder à HttpContext dans ASP.NET Core après la suppression de HttpContext.Current ?

Comment accéder à HttpContext dans ASP.NET Core après la suppression de HttpContext.Current ?

Mary-Kate Olsen
Libérer: 2025-01-19 15:11:09
original
802 Les gens l'ont consulté

How Do I Access HttpContext in ASP.NET Core After the Removal of 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal