Gần đây tôi đã di chuyển rất nhiều thử nghiệm điều kiện tiên quyết thủ công và ngoại lệ với các hợp đồng mã. Thay vì nâng cấp lên .NET 4, tôi đã sử dụng assembly Microsoft.Contracts.dll
để có thể gắn bó với .NET 3.5 lâu hơn một chút (đây là thư viện được cả .NET 3.5 và .NET 4 sử dụng). Tôi đã thiết lập các hợp đồng viết lại trong Visual Studio 2010 và các hợp đồng làm việc tốt.Các hợp đồng mã cho .NET 3.5 gây rối lên trình gỡ lỗi VS10
Tuy nhiên, vì tôi đã thực hiện chuyển đổi đó, tôi đã nhận thấy rằng trình gỡ lỗi hoạt động hài hước trong các phương thức có hợp đồng, đặc biệt là trong các lớp có một ContractInvariantMethod. Con trỏ thực hiện dường như không khớp với dòng được đánh dấu, một số điểm ngắt không được nhấn và tôi đã có phương thức mà trình gỡ lỗi không thể nói tên biến cục bộ và hiển thị các công cụ như CS$1$0000
. Đây là bản sửa lỗi.
Có các vấn đề đã biết về việc sử dụng các hợp đồng mã trong Microsoft.Contracts.dll
trong .NET 3.5 đến VS10 không? Các vấn đề tương tự có xảy ra với các hợp đồng mã trong .NET 4 không?
[Chỉnh sửa] Câu hỏi này dẫn tôi để tạo ra một lỗi trên Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/details/573983/code-contract-rewriting-messes-up-local-variable-names-in-iterator-methods-while-debugging
[OT] Tên người dùng tuyệt vời :) – roundcrisis