ホームページ > バックエンド開発 > C++ > HttpContext.Current を削除した後、ASP.NET Core で HttpContext にアクセスするにはどうすればよいですか?

HttpContext.Current を削除した後、ASP.NET Core で HttpContext にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-19 15:11:09
オリジナル
802 人が閲覧しました

How Do I Access HttpContext in ASP.NET Core After the Removal of HttpContext.Current?

ASP.NET Core での HttpContext へのアクセス: ガイド

ASP.NET Core は、便利な HttpContext.Current プロパティを削除することで、以前のバージョンとは異なります。この記事では、ASP.NET Core アプリケーション内の現在の HTTP コンテキストにアクセスするための効果的な戦略について概説します。

アーキテクチャ上の考慮事項とリファクタリング

古い ASP.NET バージョンから移行するには、多くの場合、コードの再構築が必要になります。 ASP.NET Core のベスト プラクティスを維持するには、別のクラス ライブラリから HttpContext に直接アクセスすることを再検討する必要があります。

コントローラ内での HttpContext の利用

コントローラーは、HttpContext プロパティへの直接アクセスを提供します:

<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>
ログイン後にコピー

ミドルウェアでの HttpContext へのアクセス

カスタムミドルウェアは、HttpContext メソッド内で Invoke パラメータを利用します:

<code class="language-csharp">public async Task InvokeAsync(HttpContext context)
{
    // Access and manipulate the HttpContext here...
    await _next(context);
}</code>
ログイン後にコピー

IHttpContextAccessor の活用

依存関係注入によって管理されるクラスの場合、IHttpContextAccessor インターフェイスは次のソリューションを提供します。

<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>
ログイン後にコピー

IHttpContextAccessor 内の ConfigureServices メソッドに Startup.cs を忘れずに登録してください:

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other service registrations ...
}</code>
ログイン後にコピー

これらのメソッドは、ASP.NET Core の HttpContext.Current に代わる強力な代替手段を提供し、HTTP コンテキスト情報への効率的かつ準拠したアクセスを保証します。

以上がHttpContext.Current を削除した後、ASP.NET Core で HttpContext にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート