2010-04-26 40 views
8

Nếu có; Tôi có thể lấy nó ở đâu?Có Visualizer trình gỡ lỗi Visual Studio cho phiên ASP.NET?

+0

Bạn có nhận thấy rằng khi bạn nhấn một breakpoint bạn chỉ có thể đưa lên cửa sổ gỡ lỗi ngay và gõ 'Page.Session' để xem nó? – slugster

+0

Có. Tôi đã hy vọng cho một visualizer mà sẽ cho tôi một cái nhìn có cấu trúc của từng đối tượng hiện tại trong phiên, trong một số cách ma thuật mà không yêu cầu tôi phải có một chiếc đồng hồ trên các phím tôi đã quan tâm. Tôi đảo ngược- kỹ thuật mã di sản lồng nhau sâu sắc, và muốn thiết lập một điểm dừng mà tôi quan tâm, nhưng không phải trên mọi truy cập phiên. –

Trả lời

2

Bạn đã thử this một từ Codeproject? Sau khi sửa Tham chiếu đến Microsoft.VisualStudio.DebuggerVisualizers từ phiên bản 9.0 đến 10.0, nó đã hoạt động trong vs2010.

thư mục cài đặt là:

C:\Program files\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers

+0

Thật không may là cửa sổ SessionVisualizer là phương thức và không thể gắn được, nhưng nó hoạt động! Lưu ý: đối tượng phiên của bạn cần phải được tuần tự hóa để hiển thị dữ liệu trong trình xem, mặc dù bạn có thể thấy tên và loại của tất cả các đối tượng trong danh sách. Tiện dụng! –

2

Peter, tốt hơn là bạn tập trung truy cập phiên.

public class SessionStateBag 
{ 
    private static string SessionPropertyXKey = "SessionPropertyX"; 
    public static int SessionPropertyX 
    { 
     get { return Session[SessionPropertyXKey]; } 
     set { Session[SessionPropertyXKey] = value; } 
    } 

    private static string SessionPropertyYKey = "SessionPropertyY"; 
    public static string SessionPropertyY 
    { 
     get { return Session[SessionPropertyYKey]; } 
     set { Session[SessionPropertyYKey] = value; } 
    } 

    // etc. Try to guess the type of the session property. If you cannot guess it; use object. 
} 

Trong phần còn lại của mã, hãy thay thế Phiên ["xxx"] bằng một trong các thuộc tính của SessionStateBag ở trên.

Điều này có thể mất một hoặc hai ngày, nhưng bạn sẽ có tất cả quyền truy cập phiên ở một nơi và bạn có khả năng có thông tin chi tiết về mê cung đối tượng Phiên đôi khi tạo.

+0

Cảm ơn, nhưng điều đó không trả lời được câu hỏi. Tôi đang làm việc trong một codebase thừa kế lớn, nơi thực hiện điều này là không thực tế, vì có rất ít vùng phủ sóng thử nghiệm tại chỗ. –

+0

Làm thế nào một codebase lớn có thể tìm/thay thế sẽ không làm cho nó trở thành một trình tái cấu trúc đơn giản? Cấp này không phải là một câu trả lời trực tiếp cho câu hỏi chính xác, nhưng có vẻ với tôi đây là một gợi ý tuyệt vời để giúp bạn cải thiện gỡ lỗi của bạn. Tôi làm việc trên một codebase khá lớn bản thân mình, nếu đối tượng phiên là một vấn đề đối với chúng tôi (chúng tôi không sử dụng nó rất nhiều) Tôi sẽ xem xét làm một cái gì đó như thế này – DannykPowell

+0

Nó không phải là kích thước rất nhiều như codebase không được bao bọc trong _any_ vùng phủ sóng thử nghiệm. Cơ hội thiếu một khóa mà nó đã được concat'd với nhau, ví dụ, là quá cao. –

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