我有一个通用的方法
public void Foo<T>(T arg) where T : ISomeInterface
这个方法在整个代码中使用了很多,我想找到它的用途,T是一个特定的类型。
我可以通过短信搜索
"Foo<TheType>("
但通常在调用中省略了type参数(推断)。 有什么办法可以在VS2010或ReSharper中找到这些方法调用吗?
答案 0 :(得分:4)
在下一版ReSharper中,“搜索模式”功能将涵盖此功能。 http://youtrack.jetbrains.net/issue/RSRP-288080
答案 1 :(得分:1)
你可能会让编译器使用旧的break-it-and-see-what-not-compile方法来帮助你找到它们:如果有问题的类型T是你自己的代码,请尝试更改它定义,以便它不再实现ISomeInterface。
答案 2 :(得分:0)
通过ildasm运行程序集并搜索相应的方法签名,然后通过反汇编向后工作以获取源文件和行号。
答案 3 :(得分:0)
我尝试使用ReSharper搜索模式(ReSharper-&gt;工具 - &gt; PatternCatalog-&gt;添加模式):
搜索模式:Foo($ arg $)
占位符:arg =表达式,类型为TheType
然后保存并单击“立即搜索”。
答案 4 :(得分:0)
暂时声明非泛型方法并查找其用法。
public void Foo(TheType arg)
{
}
在声明之后,它是首选方法而不是通用方法。
答案 5 :(得分:-1)
正如您所提到的,您可以使用文字搜索“Foo<TheType>(
”和“Foo(TheType
”来推断