6

(名前で)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

私の質問は:もっと良い方法はありますか?

4

2 に答える 2

13
HttpContext.Current.Response
HttpContext.Current.Request
于 2008-11-11T19:19:52.500 に答える
2

HttpContext.CurrentはAmbientContextデザインパターンを使用するため、コード内のほぼどこからでもResponseオブジェクトにアクセスできるはずです。とても便利です。

不思議に思う人のために、アンビエントコンテキストパターンは非常にクールであり、ここで詳しく説明されています:

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

于 2008-11-11T19:22:57.160 に答える