2016-07-12 10 views

Antwort

1

IntelliTrace erfasst keine Werte von lokalen Variablen. Soweit ich weiß, aus Leistungsgründen. Es zeichnet nur Werte von tatsächlichen Parametern und Werten auf, die von Methoden zurückgegeben werden. Allerdings gibt es auch hier Einschränkungen. Wenn ein Aktualparameter (oder ein Rückgabewert) ein Referenztyp ist, erfasst IntelliTrace nicht das gesamte Objektdiagramm, sondern nur die erste Ebene. Zum Beispiel, nehmen wir an, dass es Klasse A. Es ist 2 Eigenschaften:

int IntProp { get; set; } 
SomeClass ObjectProp { get; set; } 

In diesem Fall IntelliTrace wird uns erlauben, nur auf einen Wert von IntProp zu untersuchen. Als ObjectProp können wir nur sehen, ob es gesetzt ist oder nicht. Es ist nicht möglich, Eigenschaften einer Instanz von SomeClass zu sehen.

+0

Also, in dem Fall, wo ich eine Ausnahme bekomme, wenn Clients meinen Code ausführen, aber ich muss mehr wie den Status aller Variablen wissen, ist die beste Sache zu tun, nur eine Reihe von Variablen als benutzerdefinierte Parameter hinzufügen? Gibt es eine einfache Möglichkeit, jedes Objekt an die Stelle der Ausnahme zu bringen und es in Anwendungsinformationen zu speichern? – punkouter

+1

Es gibt einige Problemumgehungen, aber sie erfordern zusätzlichen Aufwand. Sie können versuchen: benutzerdefinierte Diagnoseereignisse zu definieren, IProgrammableDataQuery interaface zu verwenden, Tracepoints zu erstellen und IntelliTrace zusammen mit Live-Debugging zu verwenden. Allerdings können nur die ersten beiden in der Produktion verwendet werden. Außerdem können Sie nicht alle Variablen erfassen, sondern nur ausgewählte. –