2010-12-06 10 views
5

Je voudrais éviter que le débogueur ne mette à jour une série de méthodes d'aide à la validation pouvant mener à une exception. Si une exception est générée, j'aimerais qu'elle apparaisse au point d'invocation, et non dans ces méthodes auxiliaires. J'ai donc mis le DebuggerStepThroughAttribute sur les méthodes auxiliaires. Cependant, comme les méthodes de validation peuvent comporter des bogues, j'aimerais toujours pouvoir déboguer la méthode de validation. Si je place un point d'arrêt à l'intérieur d'une de ces méthodes de validation, le débogueur passera encore juste au-dessus.Comment puis-je entrer dans une méthode décorée avec DebuggerStepThroughAttribute?

Comment puis-je l'obtenir de sorte que si une exception est levée, la méthode est ignorée, mais si je place un point d'arrêt dans la méthode, alors je devrais être capable d'intervenir, ou est-ce impossible?

Répondre

2

La mise à DebuggerStepThroughAttribute d'une méthode vous empêche d'y accéder à l'aide du débogueur. Contrairement à ce que vous dites dans votre question, vous pouvez toujours placer des points d'arrêt à l'intérieur de la méthode et ils seront touchés. Le MSDN docs pour l'état d'attribut cela aussi bien.

Ceci est le plus proche de ce que vous voulez (par exemple, parcourir la méthode normalement, mais placer un point d'arrêt sur sa première ligne quand vous voulez le déboguer).

+0

Comme placer des breakpoints dans le code Framework ne fonctionne pas, est-il possible d'ignorer cet attribut à la demande? – mbx

+1

@mbx: vous pouvez placer des points d'arrêt dans le code de structure si vous avez configuré les symboles. Il n'y a pas moyen (pour autant que je sache) d'ignorer l'attribut à la demande. – adrianbanks