2010-09-02 13 views
9

Sto osservando una classe astratta nel Visualizzatore oggetti di Visual Studio 2010. Mi piacerebbe trovare tutte le classi che discendono da questa classe astratta, così posso scegliere la migliore da implementare nella mia applicazione. Non ho il codice sorgente per questo assembly, quindi non posso usare la funzione find in files.Ricerca di discendenti di classi in Visual Studio 2010

Sfortunatamente, non riesco a capire come farlo. I documenti di Visual Studio e Google restituiscono solo articoli completamente irrilevanti, quindi o sto usando la terminologia sbagliata o semplicemente questa funzione non esiste.

Il miglior consiglio che ho ricevuto è "analizzare l'assemblaggio con il riflettore di Redgate", ma sicuramente ci deve essere un modo migliore.

Grazie per il vostro tempo.

+0

Possibile duplicato di [Visual Studio: come visualizzare tutte le classi ereditate da una classe base?] (Http://stackoverflow.com/questions/282377/visual-studio-how-do-i-show-all- classes-inherited-from-a-base-class) –

risposta

4

Installare Visual Studio Productivity Power Tools, quindi utilizzare il suggerimento truccato.

+0

Perfect - Ho spostato il mouse sopra il tipo di classe, ho fatto clic su "classi derivate", ho eseguito alcuni controlli in background e mi hanno mostrato i tipi derivati. Grazie mille. –

+0

Ho aggiunto gli strumenti di alimentazione della produttività a VS 2012 Premium. Non riesco a ottenere il nuovo suggerimento e non riesco a trovare nulla a riguardo nei documenti per questi strumenti (o nei documenti di Power Tools di VS2010): http://visualstudiogallery.msdn.microsoft.com/3a96a4dc-ba9c- 4589-92c5-640e07332afd –

+1

@HawkeyeParker: questa funzionalità è stata rimossa nel 2012. Ci dispiace. – SLaks

1

Se si desidera navigare comodamente attraverso una gerarchia di classi non si sarà contenti del semplice vanilla Visual Studio. Resharper e (credo) CodeRush offrono tale funzionalità. Per quest'ultimo c'è un express edition, che è gratuito. È possibile installarli tutti come componente aggiuntivo di Visual Studio.

5

Nella casella a discesa "Sfoglia" del Visualizzatore oggetti selezionare una voce diversa da "La mia soluzione" o "Tutti i componenti".

Per esempio selezionare ".NET Framework 4" o" .NET Framework 4.5"

+0

Questo non sembra essere di aiuto in VS2012. È una funzionalità solo per il 2010? –

+1

Devi anche selezionare "Mostra tipi derivati" nel menu a discesa "Impostazioni browser oggetti" che si trova sul lato destro del menu a discesa "Sfoglia" –

+0

L'ho già usato in precedenza, lo giuro, ma dove "Mostra i tipi derivati" partire? Ho tutte le altre opzioni, ma non quella, in VS 2010 SP1. Come fallback, ILSpy funziona bene. Preferirei rimanere all'interno del toolset VS per impostazione predefinita però. – JMD

7

È possibile utilizzare il Solution Explorer per questo scopo: 1) Trovare classe di base nelle esplora Solution (è possibile utilizzare la linea di ricerca). 2) Fare clic con il tasto destro sulla classe base in Solution Explorer 3) Fare clic su "Tipi derivati"

Per tornare alla vista principale di Esplora soluzioni, fare clic sul pulsante "Home" nella parte superiore di Solution Explorer.

+0

Penso che tu intenda il Solution Navigator. Questo mi ha preso quello di cui avevo bisogno, rimanendo nel set di strumenti VS. Grazie! – JMD

+0

Sì, per VS2010 è "Solution Navigator" dall'estensione "Utensili di produttività". Ma in VS 2012 o VS 2013 questa funzionalità è inclusa in "Esplora soluzioni". –

+0

Thx - Buono a sapersi dove si trova in VS 2013.IMHO, ancora meno conveniente della vista Gerarchia tipi di ReSharper, che mostra tutti i livelli dell'albero di ereditarietà in una sola volta, invece di forzarne uno per visualizzare solo una piccola parte delle informazioni contemporaneamente. L'opzione "È usato da" di quel menu VS sembra potenzialmente utile. Anche se, di nuovo, "Usages of" di ReSharper è stato molto più pratico. Perché è possibile che più ricerche di questo tipo vengano aperte in schede, per tornare facilmente a una precedente. – ToolmakerSteve