Frage

Ich habe den folgenden Code in einem Ansichtsmodell:

public Point Location
{
    get
    {
        var rangePixels = Range * PixelsPerMile;
        var xCoordinate = OwnLocation.X * MapScale + rangePixels * Math.Cos(Theta);
        var yCoordinate = OwnLocation.Y * MapScale - rangePixels * Math.Sin(Theta);
        return new Point(xCoordinate, yCoordinate);
    }
}

Eine der Verwendungsmöglichkeiten oben in der Codedatei ist System, was beinhaltet Math.

Wenn ich es sehe Math.Sin(Theta) Im Überwachungsfenster (indem ich den Code auswähle, mit der rechten Maustaste klicke und „Überwachung hinzufügen“ wähle) erhalte ich die folgende Fehlermeldung:

Der Name „Math“ existiert im aktuellen Kontext nicht

Was ich wissen möchte ist:

  1. Ist das erwartetes/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, dass dieser Fehler auftritt, können Sie sich vorstellen, wo das Problem liegen könnte?Es gibt eine Million Einstellungen in Visual Studio, und ich weiß nicht, wo ich anfangen soll.

Ich sollte beachten, dass diese Frage vage ähnlich ist Das, aber ich habe keine Probleme damit, mit der Maus über meine lokalen Variablen zu fahren, und ich verwende PostSharp nicht.

Bearbeiten

Ich habe gerade versucht, alle meine Visual Studio-Einstellungen auf die Standardeinstellungen zurückzusetzen, und es wird immer noch die gleiche Fehlermeldung angezeigt.Wenn jemand einen einfachen Test in Visual Studio ausprobieren möchte, möchte ich nur wissen, ob beim Hinzufügen einer Überwachung eine Fehlermeldung angezeigt wird Math.Sin(1).

Bearbeiten 2

Hier sind ein paar Screenshots, die zeigen, was ich gerade erlebe:

Adding Math.Sin(1) to watch

Showing error for Watch

Bearbeiten 3

Interessanterweise funktioniert Intellisense, wenn ich tippe Math. in das Überwachungsfenster, aber wenn ich den Ausdruck vervollständige, erhalte ich immer noch die Fehlermeldung:

Showing intellisense working

Bearbeiten 4

Um BACONs Fragen zu beantworten:

  1. Ich erlebe 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, auf .NET 4.0 Client Profile und vollständiges .NET 4.0 abzuzielen.Hat keinen Unterschied gemacht.Ich habe eine Konsolen-App (anstelle einer WPF-App) für das .NET 4.0-Clientprofil erstellt und schließlich ist der Fehler nicht aufgetreten.Daher kann WPF ein Problem sein (oder WPF bei einigen Bibliotheken von Drittanbietern).(Das werde ich als nächstes überprüfen.)
War es hilfreich?

Lösung

Es scheint, dass der Übeltäter eine Bibliothek eines Drittanbieters ist, die IL-Weben durchführt (Fody.PropertyChanged).

Wenn ich ein neues WPF-Projekt ohne diese Bibliothek erstelle, kann ich sie verwenden Math.Sin() im Überwachungsfenster.Sobald ich installiert habe PropertyChanged, erhalte ich die Fehlermeldung „In diesem Kontext nicht verfügbar“.

Vielen Dank an @BACON, der mich auf den richtigen Weg geführt hat, um das herauszufinden.

Hier ist ein Link zu einem Problem, das ich auf der PropertyChanged-Website gepostet habe:

http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634

Bearbeiten

Und anschließend stellt sich heraus, dass es sich wahrscheinlich um einen Fehler in Mono-Cecil handelt, den PropertyChanged nutzt:

https://github.com/jbevain/cecil/issues/90

Andere Tipps

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

enter image description here

Wenn ich versuche, Mathe zu beobachten, kann ich die Werte von E und PI sehen.Man kann Sin nicht damit belegen.Eins auf val zu setzen funktioniert einwandfrei.

Also nein, ich glaube nicht, dass das ganz normal ist, es sei denn, Sie haben auf den falschen Namen geklickt.Also nicht die Variable, sondern der „Sin“-Anteil ...

Hier habe ich das Ganze hervorgehoben ...

enter image description here

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top