Code-Verträge für .NET 3.5 bringen den VS10-Debugger durcheinander

Ich habe vor kurzem viele manuelle Tests und Ausnahmefehler mit Code-Verträgen migriert. Anstatt auf .NET 4 zu aktualisieren, verwende ich dasMicrosoft.Contracts.dll Assembly, damit ich mich etwas länger an .NET 3.5 halten kann (dies ist eine Bibliothek, die sowohl von .NET 3.5- als auch von .NET 4-Assemblys verwendet wird). Ich habe den Umschreiber für Verträge in Visual Studio 2010 eingerichtet und die Verträge funktionieren einwandfrei.

Seit ich diesen Wechsel durchgeführt habe, ist mir jedoch aufgefallen, dass der Debugger in Methoden mit Verträgen, insbesondere in Klassen mit einer ContractInvariantMethod, witzig wirkt. Der Ausführungscursor scheint nicht immer mit der hervorgehobenen Zeile übereinzustimmen, einige Haltepunkte werden nicht erreicht, und ich hatte eine Methode, bei der der Debugger die lokalen Variablennamen nicht erkennen konnte und Dinge wie @ anzeigCS$1$0000. Dies befindet sich in Debug-Builds.

Bekannte Probleme bei der Verwendung der Codeverträge inMicrosoft.Contracts.dll in .NET 3.5 bis VS10? Treten bei den Codeverträgen in .NET 4 ähnliche Probleme auf?

[Bearbeiten] Diese Frage hat mich dazu gebracht, einen Fehler in Microsoft Connect zu verursachen:https: //connect.microsoft.com/VisualStudio/feedback/details/573983/code-contract-rewriting-messes-up-local-variable-names-in-iterator-methods-while-debuggin

Antworten auf die Frage(4)

Ihre Antwort auf die Frage