Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses HttpContext dalam Kaedah Statik Teras ASP.NET?
Cabaran: Bagaimanakah anda mengakses HttpContext
dalam kaedah statik atau perkhidmatan utiliti dalam Teras ASP.NET, memandangkan HttpContext.Current
tidak tersedia?
Dalam rangka kerja ASP.NET MVC yang lebih lama, pembangun bergantung pada HttpContext.Current
. Pendekatan ini tidak lagi sah dalam Teras ASP.NET.
Penyelesaian: Penyelesaian yang disyorkan melibatkan memanfaatkan perkhidmatan IHttpContextAccessor
. Perkhidmatan ini membenarkan suntikan pergantungan menyediakan akses kepada HttpContext
semasa.
Berikut ialah cara untuk melaksanakan IHttpContextAccessor
:
Mula-mula, suntik IHttpContextAccessor
ke dalam pembina kelas anda:
<code class="language-csharp">public class MyComponent : IMyComponent { private readonly IHttpContextAccessor _httpContextAccessor; public MyComponent(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } // ... your methods ... }</code>
Kini, anda boleh mengakses HttpContext
sifat seperti sesi:
<code class="language-csharp">public string RetrieveSessionData() { return _httpContextAccessor.HttpContext.Session.GetString("KEY"); }</code>
Kaedah ini memastikan akses yang betul kepada HttpContext
dalam komponen bukan statik anda, menyelesaikan batasan mengaksesnya secara langsung dalam konteks statik. Ingat untuk mendaftar IHttpContextAccessor
dalam Startup.cs
anda (atau Program.cs
dalam .NET 6 dan lebih baru) untuk mendayakan fungsi ini.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses HttpContext dalam Kaedah Statik Teras ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!