2010-02-17 38 views
22

Có cách nào để làm cho cửa sổ Xem hiển thị tất cả các thuộc tính và trường kế thừa trong một danh sách dài, thay vì ẩn đằng sau nút "cơ sở" lồng nhau?Làm phẳng các thành viên được thừa kế trong cửa sổ Xem của Visual Studio?

Tôi đang gỡ lỗi một số mã C# sử dụng thừa kế lớn - một số thuộc tính tôi muốn xem nằm sau ba cấp "cơ sở" trong cửa sổ Xem. Điều này sẽ ít nhiều bearable nếu tôi chỉ muốn kiểm tra một đối tượng như vậy, nhưng tôi thực sự nhìn vào một cây của họ ...

Trả lời

8

thấy http://blogs.msdn.com/b/jaredpar/archive/2010/02/19/flattening-class-hierarchies-when-debugging-c.aspx

UPDATE: Tôi đã viết một công cụ thương mại gọi là OzCode rằng giải quyết vấn đề này. Ý tưởng là nếu bạn quan tâm đến thuộc tính của lớp cơ sở, bạn có thể "Gắn dấu sao" thuộc tính đó làm cho thuộc tính xuất hiện ở đầu danh sách thành viên và cũng trong văn bản của phần tử gốc.

Vì vậy, ví dụ, trong các tình huống sau, tôi đã phải mở rộng hai nút cơ sở để có thể nhìn thấy các thuộc tính tôi muốn, "Quan trọng" và "Thú vị": No Stars

Nhưng một khi tôi sao các đặc tính này, họ sẽ luôn xuất hiện ở phía trên, thậm chí khi xem biến của các loại nguồn gốc, vì vậy tôi sẽ thấy:

After adding stars

những stars được tiếp tục tồn và sẽ được hiển thị mỗi khi bạn xem một một đối tượng kiểu đó trong DataTip hoặc QuickWatch wi từ thời điểm đó trở đi, do đó, lần sau bạn biến loại đó, bạn sẽ không cần phải mở rộng các nút "cơ sở" đó. Và vì các giá trị được gắn dấu sao xuất hiện dưới dạng văn bản của nút cha, nếu bạn đang xem cấu trúc cây của các đối tượng lồng nhau này (như bạn đã nói), bạn sẽ có thể thấy các thuộc tính này mà không cần mở rộng các nút.

CÔNG BỐ ĐẦY ĐỦ: Tôi là đồng tác giả của công cụ tôi đã mô tả ở đây.

+0

a) Điều này vẫn còn tồn tại? (trang web của bạn bị hỏng) b) Nó có hoạt động trên tất cả các lớp (các lớp khung .Net nguyên gốc) không? – tbone

+0

@tbone a) Có, sản phẩm đã được tái thương hiệu dưới tên [OzCode] (http://www.oz-code.com), đã cập nhật câu trả lời của tôi b) Có chứ! –

+0

Bạn đã kiểm tra giá A/B chưa? Tôi rất muốn có điều này, nhưng bắn phá $ 70 là một khối tâm lý khá lớn, ngay cả khi kinh tế phi logic. – tbone

4

Không phải như vậy. Bạn thấy đấy, nó là một tính năng! Khả năng nhìn thấy nơi một tài sản đến từ là quan trọng nhất của thời gian.

Tôi hiểu nỗi đau của bạn. Có một số công việc xung quanh. Trước tiên, bạn chỉ có thể đặt đối tượng .property trong cửa sổ xem. Điều này sẽ chỉ hiển thị các tài sản mà bạn đang tìm kiếm. Nó là tuyệt vời cho đào vào một tài sản cụ thể nhưng không quá nhiều để có được tất cả những người khác.

Bạn cũng có thể thử (BaseClass) đối tượng. Điều này sẽ đưa nó vào đối tượng cơ sở có chứa thuộc tính (thuộc tính?) Mà bạn đang tìm kiếm. Một lần nữa nó là rất tốt cho việc tìm kiếm một tập hợp con cụ thể của các thuộc tính nhưng hoàn toàn ẩn tất cả những người khác.

Chúc may mắn và săn bắn tốt.

+1

Cảm ơn, không may là những ý tưởng này có thể giúp tôi xem các đối tượng sâu bên trong cây: ( –

+0

Nếu bạn đang nói về một thành viên riêng của lớp DEEP, bạn * * có thể sử dụng dàn diễn viên. biết mã của bạn, bạn có thể đúng trong đó bạn phải khoan, nếu đúng như vậy, bạn có thể lên lạch như họ nói. – Craig

+4

Có thể thấy thành viên đến từ đâu chắc chắn là một tính năng quan trọng, nhưng buộc bạn phải điều hướng chuỗi thừa kế thay vì chỉ hiển thị một cấu trúc phẳng với lớp nguồn cho mỗi thành viên là một lỗi. > :( – bambams

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