2013-05-09 25 views
9

Tôi vừa tải xuống bản dùng thử Resharper 7.1. Mục tiêu của tôi là thực thi một quy tắc mà logger tùy chỉnh của chúng ta phải được sử dụng trên tất cả các khối catch trong cơ sở mã C# của chúng ta. Thí dụ;Mẫu kiểm tra tùy chỉnh để ghi nhật ký khối catch

try{ 
    // Any amount of code 
} 
catch(Exception e){ 

} 

nên là bất hợp pháp, tuy nhiên:

try{ 
    // Any amount of code 
} 
catch(Exception e){ 
    Logger.LogException(e.Message, e); 
} 

là hoàn toàn chấp nhận được. Để kết thúc này, tôi đã thiết lập mẫu sau để phát hiện và tái yếu tố.

Tìm kiếm mẫu:

try{ 
    $anystatements$ 
} 
catch($exceptiontype$ $exceptionarg$){ 
    $anycatchstatements$ 
} 

Thay thế mẫu:

try{ 
    $anystatements$ 
} 
catch($exceptiontype$ $exceptionarg$){ 
    Logger.LogException($exceptionarg$.Message, $exceptionarg$) 
    $anycatchstatements$ 
} 

Resharper được phát hiện mùi tốt, nhưng được xử lý thay thế mô hình như một mùi trong chính nó như dòng gia tăng đối với Logging đang được khớp với $anycatchstatement$ trình giữ chỗ.

Làm cách nào để xác định trình giữ chỗ mô tả "khớp với bất kỳ số lượng câu lệnh nào trong khối catch KHÔNG gọi đến trình ghi nhật ký tùy chỉnh và chỉ cần thêm cuộc gọi vào trình ghi nhật ký"?

+1

Điều này có vẻ xấu cho bạn: http://stackoverflow.com/questions/11657922/resharper-custom-pattern-replacement-with-negative-equality-expression Tôi nghĩ rằng nó hiệu quả là một dupe, trong một vòng xoay thời trang. – spender

+0

Ah chết tiệt! Tôi đã dành rất nhiều thời gian cho việc tìm kiếm, không nghĩ đến 'bình đẳng tiêu cực'! Điều đó nói rằng, không có câu trả lời dễ chịu cho giải pháp của tôi về chủ đề đó ngoài 'không làm điều đó'. – Finch

+2

Gửi yêu cầu tính năng tại đây: http://youtrack.jetbrains.com/issues/RSRP - Nhóm ReSharper thường rất nhanh trong việc khắc phục các sự cố quan trọng. –

Trả lời

1

Unfortunatley no, tôi đang sử dụng Resharper 8 EAP (http://confluence.jetbrains.com/display/ReSharper/ReSharper+8+EAP) và nó vẫn không có tùy chọn như vậy.

Có thể bạn nên xem qua Hợp đồng mã, hoặc http://www.postsharp.net/ hoặc nội dung tương tự.

Cũng Vladimir Reshetnikov đã đúng - nhóm của họ có thể giúp bạn rất nhiều. Bạn có thể dễ dàng liên hệ với họ qua email hoặc mẫu web. Họ có những nhà phát triển thực sự tốt và công ty cho phép liên lạc trực tiếp với khách hàng của họ. Họ đến từ Nga :)

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