Có lẽ cách tốt nhất và dễ nhất để đạt được những gì bạn đang có là sử dụng công cụ phân tích mã tích hợp với Visual Studio để tìm và đưa bạn trực tiếp đến mã chết và các thành viên không sử dụng.
Để đạt được hiệu quả này, tôi đã tạo một tệp quy tắc phân tích mã mới (Qua tệp-> Mới-> Tệp , đảm bảo Chung trong khung bên trái đã được chọn và cuộn xuống để tìm Bộ quy tắc phân tích mã , đặt tên tệp, sau đó tìm kiếm và chọn các quy tắc dưới đây). Xem bên dưới để biết nội dung của tệp quy tắc mà bạn có thể sao chép và dán vào một tệp mới có phần mở rộng .ruleset để sử dụng.
Đưa ra một tệp quy tắc, người ta có thể nhấp chuột phải vào tệp dự án trong bảng Solution Explorer và chọn Thuộc tính . Trong các cửa sổ thuộc tính dự án, bấm vào tab Phân tích mã trong bảng điều khiển bên trái, sau đó bấm Mở để duyệt đến vị trí của tệp .ruleset. Nếu bạn đi đến các thuộc tính của tệp giải pháp (trái ngược với tệp dự án), bạn có thể đặt tệp phân tích mã cho từng dự án trong giải pháp ở một nơi (trong Cài đặt phân tích mã và sử dụng trình đơn thả xuống ở đó để chọn tệp quy tắc. LƯU Ý: Tuy nhiên, trước đây bạn phải duyệt tệp quy tắc để hiển thị trong trình đơn thả xuống trong cửa sổ thuộc tính này, tuy nhiên).
Sau đó, bạn chỉ cần chạy phân tích mã trên các dự án / giải pháp (Via Analyze-> Run Mã Phân tích On Giải pháp -HOẶC- Alt + F11 ) và nó sẽ trở lại như cảnh báo, bất kỳ phương pháp unreferenced hoặc thành viên không sử dụng nó tìm thấy. Nó thậm chí sẽ tìm thấy các phương thức được tham chiếu bởi một phương thức, bản thân nó không có tham chiếu nào ở nơi khác.
Tuy nhiên, hãy cẩn thận, vì một trong những cách phân tích mã cho mã chết có thể khiến bạn sai, là nếu tham chiếu bị 'ẩn' bằng cách chỉ gọi phương thức qua các đại biểu, và dĩ nhiên, phản ánh.
Các quy tắc để phát hiện mã chết, cụ thể, là:
- Các phương thức riêng tư không được gọi từ bất kỳ mã nào khác (CA1811)
- Biến cục bộ không sử dụng (CA1804)
- Các trường riêng chưa sử dụng (CA1823)
- Các tham số không sử dụng (CA1801)
- Các lớp bên trong không được khởi tạo từ bất kỳ mã nào khác (CA1812).
- Mã chết trong công tắc giới hạn bit-OR (C6259)
Dưới đây là nội dung của tệp .ruleset có thể có bằng cách làm theo các bước ở trên, để bạn biết được. Bạn có thể chỉ cần sao chép XML bên dưới, dán nó vào notepad ++, lưu ở đâu đó với phần mở rộng .ruleset , duyệt và sử dụng như được giải thích ở trên:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6259" Action="Warning" />
</Rules>
</RuleSet>