Контракты кода для .NET 3.5 портят отладчик VS10
Недавно я перенес много ручного тестирования предварительных условий и исключения для контрактов кода. Вместо обновления до .NET 4 я используюMicrosoft.Contracts.dll
сборка, чтобы я мог придерживаться .NET 3.5 немного дольше (это библиотека, используемая как сборками .NET 3.5, так и .NET 4). Я настроил переписчик контрактов в Visual Studio 2010, и контракты работают отлично.
Однако, после того как я сделал это переключение, я заметил, что отладчик ведет себя странно в методах с контрактами, особенно в классах с ContractInvariantMethod. Кажется, что курсор выполнения не всегда совпадает с выделенной строкой, некоторые точки останова не могут быть достигнуты, и у меня был метод, в котором отладчик не мог сообщать имена локальных переменных и показывал такие вещи, какCS сборка, чтобы я мог придерживаться .NET 3.5 немного дольше (это библиотека, используемая как сборками .NET 3.5, так и .NET 4). Я настроил переписчик контрактов в Visual Studio 2010, и контракты работают отлично.0000
, Это в отладочных сборках.
Известны ли проблемы с использованием контрактов кода вMicrosoft.Contracts.dll
в .NET 3.5 через VS10? Возникают ли похожие проблемы с контрактами кода в .NET 4?
[Изменить] Этот вопрос побудил меня создать ошибку в Microsoft Connect:https://connect.microsoft.com/VisualStudio/feedback/details/573983/code-contract-rewriting-messes-up-local-variable-names-in-iterator-methods-while-debugging