2011-01-17 36 views
5

Tôi nhận được cảnh báo Phân tích mã Visual Studio CA1506 cho lớp C#. Nó nói, "FormMain" được kết hợp với 93 loại khác nhau (không phải IComponent) từ 25 không gian tên khác nhau. Viết lại hoặc refactor phương thức của lớp này để giảm khớp nối lớp, hoặc xem xét chuyển một số phương thức của lớp sang một số kiểu khác Một khớp nối lớp trên 95 cho thấy khả năng bảo trì kém, một khớp nối lớp giữa 95 và 80 cho thấy khả năng bảo trì vừa phải và một khớp nối lớp dưới 80 cho thấy khả năng bảo trì tốt. "Phân tích cảnh báo Phân tích FxCop/Mã CA1506: AvoidExcessiveClassCoupling

Câu hỏi của tôi đơn giản, tôi có thể xem danh sách tất cả các loại mà FormMain được ghép nối để tôi có thể hiểu tình hình tốt hơn?

Cảm ơn.

+0

Có bao nhiêu điều khiển nào bạn có trong mẫu đơn này? Có bao nhiêu dòng mã trong tệp form.cs? –

+0

Tôi đang sử dụng thanh ribbon và bảng điều khiển dành cho nhà phát triển Express. Có khoảng 30 điều khiển trên thanh ribbon. Bao gồm các dòng trống và nhận xét có khoảng 1600 dòng (không tính FormMain.Designer.cs), trong đó khoảng 800 dòng không phải là dòng trống hoặc nhận xét. – RenniePet

Trả lời

4

Bạn có thể sử dụng Reflector để phân tích tất cả mọi thứ một cách sử dụng lớp (nhấp chuột phải vào lớp, nhấp vào 'Phân tích', mở rộng 'phụ thuộc vào')

+0

Cảm ơn bạn rất nhiều. Điều đó có vẻ rất thú vị, và tôi nghĩ câu trả lời cho câu hỏi của tôi được chôn trong danh sách đó. Điều duy nhất tôi muốn biết bây giờ là nếu có một số cách để có được một danh sách chứa các loại, và không phải tất cả các phương pháp trong các loại, chỉ để làm cho nó dễ dàng hơn cho tôi để đặt số trên các loại DevExpress so với .Net Framework loại so với các loại của riêng tôi. – RenniePet

+0

Hài hước, khi tôi xóa tất cả các phương thức khỏi danh sách đó, tôi nhận được khoảng 145 loại trong 20 không gian tên, không chính xác là những gì Code Analysis đã nói trong thông điệp cảnh báo của nó. Tuy nhiên, bây giờ tôi cảm thấy đủ tự tin khi bỏ qua cảnh báo đó, đặt đổ lỗi cho "vấn đề" trên DevExpress. (DevExpress chiếm 70 loại, .Net Framework cho 40, và loại của riêng tôi cho 30 còn lại.) – RenniePet

+0

@RenniePet - Bạn có bất kỳ logic nghiệp vụ hoặc mã truy cập cơ sở dữ liệu nào trong biểu mẫu không? Nếu vậy, việc di chuyển chức năng đó sang các lớp riêng biệt cũng sẽ giúp giảm phụ thuộc của biểu mẫu. – Pedro

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