Das Visual Studio Watch-Fenster berücksichtigt die Verwendung nicht

8

Ich habe den folgenden Code in einem Ansichtsmodell:

%Vor%

Einer der Usings am Anfang der Codedatei ist System , der Math enthält.

Wenn ich Math.Sin(Theta) im Überwachungsfenster anzeige (indem ich den Code auswähle, mit der rechten Maustaste klicke und "Watch hinzufügen" wähle), erhalte ich den folgenden Fehler:

  

Der Name 'Math' existiert nicht im aktuellen Kontext

Was ich wissen will ist:

  1. Ist das erwartete / Standardverhalten für Visual Studio 2010? Ich könnte schwören, dass das nie ein Problem war, aber vielleicht hat es immer so funktioniert und ich habe es irgendwie nie bemerkt.
  2. Wenn es nicht normal ist, diesen Fehler zu bekommen, irgendwelche Gedanken darüber, was das Problem sein könnte? Es gibt eine Million Einstellungen in Visual Studio, und ich wüsste nicht, wo ich anfangen soll.

Ich sollte beachten, dass diese Frage vage dem this <ähnelt / a>, aber ich habe keine Probleme über meine lokalen Variablen zu bewegen, und ich benutze nicht PostSharp.

Bearbeiten

Ich habe gerade versucht, alle meine Visual Studio-Einstellungen auf die Standardeinstellungen zurückzusetzen, und ich bekomme immer noch den gleichen Fehler. Wenn jemand einen einfachen Test in Visual Studio ausprobieren möchte, möchte ich nur wissen, ob Sie einen Fehler erhalten, wenn Sie eine Überwachung für Math.Sin(1) hinzufügen.

Bearbeiten 2

Hier sind ein paar Screenshots, um zu zeigen, was ich erlebt habe:

Bearbeiten 3

Interessanterweise funktioniert Intellisense, wenn ich Math. in das Watch-Fenster eintippe, aber wenn ich den Ausdruck vervollständige, bekomme ich immer noch den Fehler:

Bearbeiten 4

Um BACONs Fragen zu beantworten:

  1. Ich bekomme das gleiche Verhalten mit QuickWatch und Immediate.
  2. Das Schließen und erneute Öffnen aller Fenster löst das Problem nicht.
  3. Ich verwende Visual Studio 2010 Professional (Version 10.0.40219.1 SP1Rel)
  4. Ich habe versucht, .NET 4.0 Client Profile und .NET 4.0 zu targetieren. Machte keinen Unterschied. Ich habe eine Konsolenanwendung (anstatt einer WPF-Anwendung) erstellt, die auf das .NET 4.0-Clientprofil abzielt, und schließlich trat der Fehler nicht auf. Daher kann WPF ein Problem sein (oder WPF mit einigen Drittanbieter-Bibliotheken). (Wird als nächstes nachsehen.)
devuxer 29.02.2012, 02:15
quelle

2 Antworten

6

Es scheint, dass der Täter eine Bibliothek eines Drittanbieters ist, die das IL-Weben (Fody.PropertyChanged) ausführt.

Wenn ich ein neues WPF-Projekt ohne diese Bibliothek erstelle, kann ich Math.Sin() im Überwachungsfenster verwenden. Sobald ich PropertyChanged installiert habe, bekomme ich den Fehler "nicht verfügbar in diesem Kontext".

Danke an @BACON, dass er mich auf den richtigen Weg gebracht hat, um das herauszufinden.

Hier ist ein Link zu einem Problem, das ich auf der PropertyChanged-Site veröffentlicht habe:

Ссылка

Bearbeiten

Und dann stellt sich heraus, dass dies wahrscheinlich ein Fehler in Mono-Cecil ist, den PropertyChanged verwendet:

Ссылка

    
devuxer 29.02.2012, 05:52
quelle
1

Ich habe das in einer kleinen Test-App im Konstruktor gemacht.

Wenn ich Math beobachten will, kann ich die Werte von E und PI sehen. Du kannst keine Sünde machen. Einen auf val zu setzen funktioniert gut.

Also, nein, ich denke nicht, dass das ganz normal ist, es sei denn, Sie haben auf den falschen Namen geklickt. Dh, nicht die Variable, sondern der "Sin" -Teil ...

Hier habe ich die ganze Sache hervorgehoben ...

    
pennyrave 29.02.2012 02:49
quelle