2011-02-09 10 views
12

Possiedo una classe di utilità che è stata accuratamente testata e non desidero che il debugger di VS entri in uno dei suoi metodi. Penso di aver sentito un modo per contrassegnare qualcosa come non il mio codice in modo che l'impostazione del debugger Just My Code faccia sì che il debugger passi a queste chiamate di metodo, ma per la vita di me non riesco a ricordare quale sia l'attributo di classe (né posso farlo con successo Google per questo).Posso contrassegnare una classe come non il mio codice in modo che il debugger passi su di essa?

So che potrei separare questa classe nel suo assembly e costruirla in modalità di rilascio per alleviare il problema, ma vorrei entrare in alcuni assembly (e vorrei mantenere questa classe dov'è).

È possibile o stavo sognando questa opzione?

Aggiornamento

ho fatto alcuni test con le due opzioni (DebuggerStepThrough e DebuggerNonUserCode), e ho trovato che DebuggerNonUserCode si comporta esattamente come il quadro quando avere Just My Code abilitato/disabilitato. L'attributo DebuggerStepThrough causa sempre il debugger di saltare la sezione contrassegnata con l'attributo. Per coerenza, sono andato con DebuggerNonUserCode.

+0

Premere F10 per passare sopra un metodo. Problema risolto. –

+0

@Ed: Lo so, ma preferirei non dover passare da F10 a F11 mentre eseguo il debug (a meno che non lo vogliano in particolare). Mi piacerebbe lo stesso comportamento che ottengo con il framework quando 'Just My Code' è attivo. –

+1

Sì, questo è un punto giusto. Tuttavia, l'ho lasciato come commento (al contrario di una risposta) proprio per questa ragione. –

risposta

11

Si sta cercando l'attributo DebuggerNonUserCode.

+0

Anche se questo può funzionare, questo non è per l'uso previsto. Da MSDN _ "Quando il debugger rileva questo attributo quando passa attraverso il codice utente, l'esperienza dell'utente non è quella di vedere il codice fornito dal progettista e di passare alla successiva istruzione di codice fornita dall'utente." _ Utilizzare invece 'DebuggerStepThrough'. –

19

È possibile utilizzare l'attributo DebuggerStepThrough per ignorarlo.

+0

questo è esattamente quello che stavo cercando. Grazie. –

+0

Pensavo che DebuggerStepThrough fosse solo per i metodi. –

+0

@jdv, non che io sappia. Dovrebbe funzionare anche sulle classi. – Brandon

Problemi correlati