Tôi muốn quấn các biến phiên theo cách tương tự như discussed on CodeProject.Biến có được lưu trong Session deserialized một lần hoặc nhiều lần trong suốt vòng đời của trang không?
public static class WebSession
{
private const string CurrentUserKey = "CurrentUser";
private static HttpSessionState Session
{
get { return HttpContext.Current.Session; }
}
public static bool Exists
{
get { return Session != null; }
}
public static User CurrentUser
{
get { return Session[CurrentUserKey] as User; }
set { Session[CurrentUserKey] = value; }
}
}
Đây là câu hỏi của tôi: nếu tôi có để truy cập CurrentUser
nhiều lần trong cùng một trang, tôi sẽ nhận được một cải thiện hiệu suất bằng cách gán nó vào một biến địa phương thay vì truy cập các gói bất động sản? Hoặc không HttpSessionState
đảm bảo đối tượng chỉ được deserialized một lần cho mỗi yêu cầu, để các cuộc gọi tiếp theo trong cùng một yêu cầu http không chi phí nữa?
Cảm ơn, Aaron
Không phải là câu trả lời cho câu hỏi của bạn, nhưng sử dụng một biến cục bộ là nhanh hơn sau đó nhận được biến bạn từ một bộ sưu tập. – Canavar
Nếu tôi thêm một số sự liên quan nhiều hơn vào câu hỏi của bạn, "Khi nào việc tuần tự hóa tuần tự và diễn giải tuần tự diễn ra và khi nó diễn ra, tất cả các đối tượng đều được tuần tự hóa/deserialized và nếu tôi gọi cùng một đối tượng phiên (nhiều lần) là nó lấy/deserialized một lần hoặc nhiều lần? – ram
FYI, lớp học của bạn để đối phó với phiên là tốt đẹp.Nếu bạn muốn đưa nó lên một notch, hãy kiểm tra liên kết này: http://blog.theobjectguy.com/2009/12 /session-with-style.html – TheObjectGuy