c#复杂';查找用法';脚本
假设我的项目中有以下类:c#复杂';查找用法';脚本,c#,visual-studio,resharper,C#,Visual Studio,Resharper,假设我的项目中有以下类: 基本接口 public interface IInvoker { void Invoke(); } 实现接口的两个类 public interface IInvoker { void Invoke(); } 第一个: public class Invoker1 : IInvoker { public void Invoke() { Console.WriteLine("Invoker #1"); } } 第
public interface IInvoker
{
void Invoke();
}
public interface IInvoker
{
void Invoke();
}
第一个:
public class Invoker1 : IInvoker
{
public void Invoke()
{
Console.WriteLine("Invoker #1");
}
}
第二点:
public class Invoker2 : IInvoker
{
public void Invoke()
{
Console.WriteLine("Invoker #2");
}
}
public class InvokerContainer
{
private readonly IInvoker target;
public InvokerContainer(IInvoker invoker)
{
this.target = invoker;
}
public void InvokeTarget()
{
this.target.Invoke();
}
}
class Program
{
static void Main(string[] args)
{
InvokingMethod1(new Invoker1());
InvokingMethod2(new Invoker2());
new InvokerContainer(new Invoker1()).InvokeTarget();
Console.ReadKey();
}
private static void InvokingMethod1(IInvoker invoker)
{
invoker.Invoke();
}
private static void InvokingMethod2(IInvoker invoker)
{
invoker.Invoke();
}
}
所以我的问题是:有没有办法找到所有使用Invoker1#Invoke
的地方,以及可能的调用层次结构是什么?
根据上述代码,此方法应产生以下结果:
程序#调用方法1
。堆栈跟踪:Program#Main
->Program#InvokingMethod1
第17行InvokerContainer#InvokeTarget
。堆栈跟踪:Program#Main
->InvokerContainer#InvokeTarget
第14行得到resharper@T.S.我已经有了它,但“Find Usages Advanced”和“Search with pattern”都没有帮到我。也许你知道我应该用Resharper做些什么才能得到想要的结果?@DmitrySenin,你不能也正确地这样做,因为根据坚实的原则(特别是Liskov替换)。接口允许按约定进行设计,它应该与类实现无关。直接使用类的接口方法(而不是通过接口)是代码臭味的开始。如果你看到的是别人造成的混乱,那么祝你好运:)@sbp,我不会违反Liskov替换原则:)我正在寻找一种工具,可以帮助分析上述代码deeplyReSharper功能“传入调用”可以显示层次结构,但它不会过滤接口调用