2013-03-07 70 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泛型类型。