2009-02-17 30 views
13

Tôi có thể gọi HttpContext.Current từ trong lớp tĩnh và Phương thức không?HttpContext.Tiếp cận được truy cập trong các lớp tĩnh

Tôi muốn lưu trữ giá trị theo từng người dùng nhưng muốn có thể truy cập giá trị theo cách tĩnh.

ví dụ: Điều này có hiệu quả không?

public static class StaticClass 
{ 

    public static string SomeThing 
    { 
     get { return HttpContext.Current.Items["SomeItem"].ToString(); } 
    } 

} 

Trả lời

13

Có một cách hữu ích, tất nhiên luồng mà nó được gọi hiện đang xử lý yêu cầu hữu ích.

5

Tại sao bạn không thử? Có, nó hoàn toàn có thể (mặc dù không nhất thiết phải là một thiết kế tốt), chỉ cần nhớ tham khảo System.Web.dll trong dự án của bạn và kiểm tra HttpContext.Current cho null trong trường hợp bạn sẽ kết thúc chạy trong một môi trường non-COMP.NET.

5

Vâng, đó là một phương pháp tĩnh để bạn có thể gọi nó từ bất cứ nơi nào bạn muốn. Như Anthony nói, ngữ cảnh "hiện tại" phụ thuộc vào chuỗi gọi, vì vậy bạn cần đảm bảo rằng bạn đang sử dụng đúng chuỗi.

+0

Lớp và thuộc tính sẽ chỉ được gọi từ trong các trang web. Vì vậy, tôi đoán tôi sẽ luôn luôn nhận được bối cảnh hiện tại từ chủ đề chính xác. Điều này đúng hay tôi đang thiếu một cái gì đó? –

+2

Sẽ ổn thôi miễn là bạn không thực hiện bất kỳ luồng thư giãn nào (ví dụ: sử dụng luồng thư trong các trang web của bạn). –

+0

Tuyệt, không, tôi không có. Chúc mừng Jon –

Các vấn đề liên quan