假设我的项目中有以下类:
基础界面
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
的所有地方以及可能的调用层次结构?
使用上面的代码,这种方法应该给出以下结果:
Program#InvokingMethod1
。 stacktrace:Program#Main
- > Program#InvokingMethod1
第17行InvokerContainer#InvokeTarget
。 stacktrace:Program#Main
- > InvokerContainer#InvokeTarget
第14行