[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
В ASP.NET Core клас HttpContext, як і раніше, доступний, але спосіб доступу до нього змінився.
Замість використання статичної властивості HttpContext.Current, як у попередніх версіях ASP.NET, ви можете використовувати клас HttpContextAccessor, який надає доступ до поточного HttpContext у зручній для впровадження залежностей (DI) формі.
Ось кроки для отримання HttpContext в ASP.NET Core:
Додайте HttpContextAccessor у контейнер DI у файлі Program.cs:
1 |
builder.Services.AddHttpContextAccessor(); |
2. У своєму контролері або службі впровадьте IHttpContextAccessor як залежність:
1 2 3 4 5 6 7 8 9 |
public class HomeController : Controller { private readonly IHttpContextAccessor _httpContextAccessor; public HomeController(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } } |
3. Потім ви можете отримати доступ до поточного HttpContext через властивість HttpContext властивості IHttpContextAccessor:
1 2 3 4 5 |
public IActionResult Index() { var httpContext = _httpContextAccessor.HttpContext; return View(); } |
Так само, ви можете отримати доступ до поточного HTTP контексту через властивість HttpContext на будь-якому контролері. Наприклад:
1 2 3 4 5 6 7 8 9 |
public class HomeController : Controller { public IActionResult Index() { var httpContext = GetHttpContext(HttpContext); return View(); } public HttpContext GetHttpContext(Microsoft.AspNetCore.Http.HttpContext context) => context; } |
Будьте обережні під час використання HttpContext безпосередньо, оскільки це може вплинути на тестованість, масштабованість і супроводжуваність вашого коду. Намагайтеся, щоб ваша бізнес-логіка не залежала безпосередньо від HttpContext, і віддавайте перевагу використанню абстракцій більш високого рівня, таких як сервіси, сховища та DTO.
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Так само вам може бути цікава попередня стаття – Як створити ролі в ASP.NET Core і призначити їх користувачам?.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах