Как получить доступ к httpcontext.courent.Session в классе библиотеки?
-
26-12-2019 - |
Вопрос
Итак, я создаю классную библиотеку, которая обрабатывает информацию о пользователе, такую информацию, как имя пользователя, пароль и т. Д. Я хочу сделать это, чтобы я мог просто ссылаться на эту библиотеку с любым из моих веб-приложений, и не приходится постоянно переписать информацию о пользователечасть.
In, библиотека класса информации о пользователе, я хочу обрабатывать вход в систему.Я сделал это раньше в App_Code, который был частью веб-проекта, используя HttpContext.Current.Session
.Но, когда я пытаюсь использовать его в мою библиотеке классов (даже в то время как using System.Web
) он бросает ошибку компиляции, говоря, что в этом контексте httpContext не существует.Как я могу получить доступ к нему?
Решение
При создании класса утилиты типа, который работает с зависимостью, такими как httpContext, ваша лучшая ставка - пройти контекст или сеанс в класс либо через конструктор, либо на вызов метода.Таким образом, для потребителей вашего класса ясно, что это требует этого объекта для функции.Это также позволяет вам тестировать свой класс в изоляции.
Еще лучше, если вы работаете с несколькими конкретными свойствами, имеющими основные типы, то вы можете принять эти свойства в качестве входов.Таким образом, вы не создаете никаких зависимостей в рамках UI для вашей утилиты.