【发布时间】:2011-03-12 14:28:55
【问题描述】:
我最近使用代码协定迁移了许多手动前置条件测试和异常抛出。我没有升级到 .NET 4,而是一直在使用 Microsoft.Contracts.dll 程序集,因此我可以坚持使用 .NET 3.5 更长时间(这是一个同时被 .NET 3.5 和 .NET 4 程序集使用的库)。我在 Visual Studio 2010 中设置了合同重写器,合同工作得很好。
但是,自从我完成了该切换后,我注意到调试器在带有协定的方法中表现得非常有趣,尤其是在带有 ContractInvariantMethod 的类中。执行光标似乎并不总是与突出显示的行匹配,一些断点未能命中,而且我有一个方法,其中调试器无法告诉局部变量名称,并且会显示类似CS$1$0000 的内容。这是在调试版本中。
在 .NET 3.5 到 VS10 中使用 Microsoft.Contracts.dll 中的代码协定是否存在已知问题?
.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
【问题讨论】:
-
[OT] 很棒的用户名 :)
标签: .net debugging .net-3.5 visual-studio-2010 code-contracts