2013-03-07 53 views
13

有沒有辦法讓Resharper導航到特定類型的通用接口的具體實現。Resharper導航到通用接口的具體實現?

E.g. ICommandHandler<T>並找到具體的實現?我可以讓Resharper顯示ICommandHandler的所有實現,但不允許我輕鬆地實現類型T.我們有數百個處理程序,並且導航速度越來越慢。

我們正在使用ReSharper的7.1

更新

例子包括了諸如:

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

使用像MVC控制器的構造函數,如:

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

我喜歡能夠點擊ICommandHandler<RemoveStockRequestLineItemCommand>並轉到實施類別小號RemoveStockRequestLineItemCommandHandler

+0

你能舉幾個例子簽名嗎?我認爲CTRL-F12不能完成這項工作...... – levelnis 2013-03-07 23:41:14

+0

沒有ctrl + F12只列出數百個ICommandHandler實現。它不關心通用 – GraemeMiller 2013-03-07 23:46:08

+0

+ +1的問題,我很想能夠做到這一點,但我不認爲ReSharper足夠聰明 – levelnis 2013-03-07 23:51:16

回答

1

如果我右鍵單擊基本對象,我得到的是提供了一個上下文菜單:

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

選擇將隨後給我的各種派生的對象(在你的情況的類)

+2

但這就是關鍵。 OP想要根據泛型參數直接轉到派生類型,而不是查看選項列表。 – levelnis 2013-03-08 07:52:26

4

Resharper 9.1.1支持查找通用接口的用法。右鍵點擊IComamndHandler,它會顯示你的用法。但是,它似乎仍然沒有找到實現的方法。

我們想出了

最好的解決辦法是

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

使用CREF鏈接http://msdn.microsoft.com/en-us/library/cc837134.aspx和模板,並將此上面的命令,或者在我們的控制器。

很想不要有這樣做,只是用導航ReSharper的

直有
+0

您是否確實找到了在ReSharper 8或更高版本中導航的方法? – comecme 2015-05-30 14:15:06

+0

不是。描述聽起來像你可以,但據我所知,你不能 – GraemeMiller 2015-05-30 23:24:23

2

ReSharper的2016.1 RTM現在支持導航到具體落實用Ctrl + F12泛型類型。