2013-03-07 1 views
13

Esiste comunque la possibilità di richiamare Resharper per passare all'implementazione concreta di un'interfaccia generica per un tipo specifico.Il resharper naviga verso un'implementazione concreta di un'interfaccia generica?

E.g. ICommandHandler<T> e trova l'implementazione concreta? Posso ottenere Resharper per mostrare tutte le implementazioni di ICommandHandler ma non mi consente di ottenere facilmente l'implementazione del tipo T. Abbiamo centinaia di gestori e la navigazione sta diventando più lenta.

Stiamo usando ReSharper 7.1

Aggiornamento

Esempi includono cose come:

public class AddStockRequestLineItemCommandHandler : ICommandHandler<AddStockRequestLineItemCommand> 
public class RemoveStockRequestLineItemCommandHandler : ICommandHandler<RemoveStockRequestLineItemCommand> 
public class StockRequestFufillingUpdateCommandHandler : ICommandHandler<StockRequestFufilingUpdateCommand> 

Uso come in MVC costruttore di controllo come:

public StockRequestController(ICommandHandler<RemoveStockRequestLineItemCommand> stockRequestLineItemRemoveHandler) 
{ 
    this.stockRequestLineItemRemoveHandler = stockRequestLineItemRemoveHandler; 
} 

mi piacerebbe essere in grado di fare clic su ICommandHandler<RemoveStockRequestLineItemCommand> e passare al clas di implementazione s RemoveStockRequestLineItemCommandHandler

+0

Puoi mostrare un paio di firme di esempio? Prendo CTRL-F12 non fa il lavoro ... – levelnis

+0

No ctrl + F12 elenca solo centinaia di implementazioni ICommandHandler. Non mi interessa il generico – GraemeMiller

+0

+1 per la domanda, mi piacerebbe essere in grado di fare anche questo, ma non credo che ReSharper sia abbastanza intelligente – levelnis

risposta

1

Se mi fate clic destro sull'oggetto di base ho un menu contestuale che offre:

Go to Implementation (Ctrl+Shift+Alt+B) 

selezione che verrà poi mi offrono i vari oggetti derivati ​​(nel tuo caso le classi)

+2

Ma questo è il punto. L'OP vuole andare direttamente al tipo derivato basato sull'argomento generico, non per vedere l'elenco delle scelte. – levelnis

4

Resharper 9.1.1 supporta la ricerca degli usi di un'interfaccia generica. Fai clic destro su IComamndHandler e ti mostrerà gli usi. Tuttavia, sembrerebbe, ancora nessun modo di trovare implementazioni.

migliore soluzione siamo arrivati ​​a era

/// <summary> 
/// <see cref="ChangePersonAddressCommandHandler"/> 
/// </summary> 

Utilizzando collegamento cref http://msdn.microsoft.com/en-us/library/cc837134.aspx e il modello e ha aggiunto questo al di sopra del comando o nel nostro controller.

amerebbero di non dover fare questo e basta navigare direttamente lì con ReSharper

+0

Hai effettivamente trovato un modo per navigare in ReSharper 8 o versioni successive? – comecme

+0

No. La descrizione suonava come si poteva, ma per quanto posso vedere non è possibile – GraemeMiller

2

ReSharper 2.016,1 RTM ora supporta la navigazione verso l'attuazione concreta di un tipo generico utilizzando Ctrl + F12.