Kann beim Debuggen nicht in den Iteratorblock wechseln (C #)

8

Ich versuche, meinen Code zu debuggen, der von einem Komponententest-Projekt ausgeführt wird, aber wenn ich versuche, in eine Methode zu gehen, geht es gerade auf die nächste Zeile und der Haltepunkt innerhalb dieser Methode wird nicht getroffen. Die Methode ist auf einer Klasse, die in einem anderen Projekt ist, aber der gesamte Code ist im Debug-Modus erstellt und ich habe versucht, die Lösung ohne Freude zu reinigen und neu aufzubauen.

Dies ist jedoch erst passiert, seit ich der Methode einen Iteratorblock hinzugefügt habe. Wenn ich es entferne und neu baue, kann ich gut vorgehen. Seltsam?

Ich verwende Visual Studio 2010 Beta 1, könnte dies nur ein Fehler sein?

    
Charlie 21.06.2009, 14:51
quelle

2 Antworten

12

Iterator-Blöcke verwenden verzögerte Ausführung - das heißt: bis Sie tatsächlich mit der Iteration über die Daten beginnen, wird nichts ausgeführt.

Also: Wurden die Daten iteriert? Gibt es irgendwas, das über die Werte läuft? Wenn Sie eine Validierungslogik hinzufügen müssen, die so früh wie möglich ausgeführt wird, benötigen Sie derzeit zwei Methoden:

%Vor%     
Marc Gravell 21.06.2009, 14:57
quelle
6

Marc hat Recht. Die Methode wird verzögert ausgeführt und Sie können nicht in die Methode wechseln, bis der Iterator tatsächlich ausgeführt wird.

Wenn ich einen Iteratorblock in einem Komponententest debuggen muss, mache ich Folgendes. Angenommen, die Methode heißt GetStuff.

%Vor%

Der Aufruf von .ToList () bewirkt, dass der Iterator vollständig ausgeführt wird. Ich habe dann einen Haltepunkt innerhalb der GetStuff-Methode gesetzt und starte eine Debugging-Sitzung

    
JaredPar 21.06.2009 15:00
quelle