2010-08-29 42 views
10

Có một số loại ứng dụng phân tích mã nguồn và đồ họa hiển thị tất cả các kết nối giữa chức năng?C# - Ứng dụng để hiển thị tất cả các phụ thuộc giữa các hàm?

tôi cần nó cho một mã di sản tôi đang làm việc trên - Đó là rất lớn, chức năng và nặng bằng văn bản ... :(

+1

Bạn có thể chuyển sang studio trực quan 2010 không? Sau đó, chỉ cần sử dụng công cụ xây dựng trong đó –

+0

@Rune FS: +1. Tôi xem đây là một câu trả lời hợp pháp. Không chắc chắn nếu những người khác sẽ đồng ý với tôi hay không. Bạn có thể muốn đề cập đến nơi để tìm những công cụ đó trong VS. –

+1

có thể trùng lặp của [C# Call Graph Generation Tool] (http://stackoverflow.com/questions/793685/c-call-graph-generation-tool) – Timwi

Trả lời

2

NDepend có thể quản lý calling graph madgnome cũng thực sự như đề xuất. Hãy để tôi phát triển một chút. Trước tiên, bạn có thể yêu cầu Biểu đồ cuộc gọi bằng truy vấn CQL, thứ hai bạn có thể xuất kết quả truy vấn vào Biểu đồ phụ thuộc hoặc Ma trận phụ thuộc.

Cụ thể, bên dưới chúng tôi yêu cầu người gọi phương thức của lớp AppDomain trong NUnit 2.4.8 (nó có thể là phương thức, trường, không gian tên ... bất kỳ thứ gì). Trình đơn này cũng có thể xuất hiện trong Visual Studio nhờ vào phần bổ trợ NDepend VS.

alt text

Sau đó, một truy vấn CQL được tạo ra cho chúng ta, chúng ta có thể thấy rằng 30 phương pháp được kết hợp trong đồ thị gọi. Chúng tôi có tùy chọn để xuất khẩu bộ hese các phương pháp oa đồ thị đồ họa ...

alt text

... và đây là đồ thị outputed (xem một phiên bản bức tranh lớn của đồ thị này here)

alt text

+0

Cảm ơn bạn đã giải thích chi tiết! – Yossale

7

NDepend làm chính xác điều đó và nhiều điều khác (số liệu mã ...)

0

.Net Reflector là khá gọn gàng - Tôi đã sử dụng nó một vài lần cho việc này loại thông tin. Có một số addins, ít nhất một trong số đó tạo ra các biểu đồ phụ thuộc.

Ngoài ra, trong VS.Net 2008 trở lên, nhấp chuột phải vào 'Tìm tất cả các tham chiếu' có thể hữu ích.

0

ReSharper cung cấp các tính năng cho phép bạn xem biểu đồ phương thức, đang gọi phương thức của bạn và ngược lại. (Cuộc gọi đi và gọi đến)

Đây là tính năng mới được gọi là "Call Tracking"

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