c# - 复杂的“查找用法”场景

时间:2018-05-15 21:57:37

标签: c# visual-studio resharper

假设我的项目中有以下类:

  1. 基础界面

    public interface IInvoker
    {
        void Invoke();
    }
    
  2. 实现接口的两个类

    第一个:

    public class Invoker1 : IInvoker
    {
        public void Invoke()
        {
            Console.WriteLine("Invoker #1");
        }
    }
    

    第二个:

    public class Invoker2 : IInvoker
    {
        public void Invoke()
        {
            Console.WriteLine("Invoker #2");
        }
    }
    
  3. 此外,我有一个类,其中包含接口类型的字段:

    public class InvokerContainer
    {
        private readonly IInvoker target;
    
        public InvokerContainer(IInvoker invoker)
        {
            this.target = invoker;
        }
    
        public void InvokeTarget()
        {
            this.target.Invoke();
        }
    }
    
  4. 客户端代码如下所示:

    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#InvokingMethod1。 stacktrace:Program#Main - > Program#InvokingMethod1第17行
    2. 通话方式:InvokerContainer#InvokeTarget。 stacktrace:Program#Main - > InvokerContainer#InvokeTarget第14行

0 个答案:

没有答案