Доступ к объекту ответа в классе ASP.NET - PullRequest
5 голосов
/ 11 ноября 2008

У меня есть функция, которая проверяет, существует ли cookie (по имени) или нет:

Private Function cookieExists(ByVal cName As String) As Boolean
    For Each c As HttpCookie In Response.Cookies
        If c.Name = cName Then Return True
    Next
    Return False
End Function

У меня есть класс, который обрабатывает файлы cookie в зависимости от приложения, и я хочу объединить все функции, связанные с файлами cookie, в этот класс. Однако я не могу использовать этот код, если просто переместить его со страницы aspx (там, где он в данный момент находится) в вышеупомянутый класс, потому что я получаю сообщение об ошибке: 'Name' Response is not declared. Я изменил класс, чтобы разрешить передачу ссылки на Response объект:

Public Function cookieExists(ByVal cName As String, ByRef Response As HttpResponse) As Boolean
    For Each c As HttpCookie In Response.Cookies
        If c.Name = cName Then Return True
    Next
    Return False
End Function

Мой вопрос: есть ли лучший способ?

Ответы [ 2 ]

13 голосов
/ 11 ноября 2008
HttpContext.Current.Response
HttpContext.Current.Request
1 голос
/ 11 ноября 2008

HttpContext.Current использует шаблон проектирования Ambient Context, поэтому вы должны иметь возможность доступа к объекту Response практически из любой точки вашего кода. Это очень полезно.

Для тех, кто интересуется, шаблон Ambient Context очень классный, и подробно здесь:

http://aabs.wordpress.com/2007/12/31/the-ambient-context-design-pattern-in-net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...