2009-04-16 18 views
25

È possibile nascondere campi e/o proprietà da mostrare nella finestra di controllo del debugger? Vedi, abbiamo una classe qui con oltre 50 campi privati, la maggior parte dei quali sono esposti attraverso proprietà pubbliche. Ciò significa che stiamo vedendo una duplicazione di un gran numero di dati nell'elenco della finestra di controllo.Nascondere i campi dal debugger

C'è qualche mezzo per controllare questo?

+1

Pensavo che avresti provato a fare un uovo di Pasqua e non volevo che i tuoi colleghi vedessero le tue variabili, i campi e gli oggetti. – Kredns

+1

Nah. È un oggetto modello piuttosto grande e dover scorrere tanti valori duplicati può essere una perdita di tempo. – Amy

risposta

53

Prova questo attributo:

[DebuggerBrowsable(DebuggerBrowsableState.Never)] 

usarlo per nascondere i campi backing mettendo l'attributo al di sopra della dichiarazione di campo in questo modo:

class Foo 
{ 
    [DebuggerBrowsable(DebuggerBrowsableState.Never)] 
    int bar; // this one will be hidden 
    int baz; // but this one will be visible like normal 
} 

Tenete a mente che l'enumerazione DebuggerBrowsableState ha altri due membri:

Collapsed: Comprime l'elemento nel debugger.
RootHidden: Questo mostra elementi figlio di una raccolta ma nasconde l'elemento radice stesso.

+2

+1 per la risposta in profondità, e tuttavia ancora succinta. Amico questo sito. – el2iot2

-1

Si potrebbe utilizzare le automobili al posto di gente del posto o utilizzare orologi e guardare solo le variabili di interesse ...

1

Il DebuggerBrowsableAttribute è coperto in questo altro SO question. Se stai facendo C# pesantemente, allora è una buona domanda su cui leggere.

1

So che questo è vecchio, ma si sarebbe molto meglio con l'utilizzo di DebuggerTypeProxy http://msdn.microsoft.com/en-us/library/d8eyd8zc.aspx

in questo modo non c'è bisogno di modificare la classe con brutti attributi e l'ulteriore vantaggio è che si può sempre guardare il tipo reale se si ha effettivamente bisogno di dare un'occhiata a uno di quei campi "nascosti".

Problemi correlati