A方法中调用了B函数中的方法:B_method(aa),在B中能否根据参数aa知道A的方法名 和所在的类名?

解决方案 »

  1.   

    除非只有A方法才会传aa过去,这样你可以在B_method里switch .. case。否则不太可能仅有参数获取你需要的东西。可以参考一下Handler的设计,把sender作为参数传过去
      

  2.   

    哦对,你可以试试StackTrace类,获取完整的调用堆栈
      

  3.   

    如果能aa这个参数获取调用者的信息,你应该自己制定一套规则,当aa是什么值的时候调用者是什么,这个应该不难。但如果这种规则没办法定,那可以通过调用堆栈跟踪获取调用者的信息,不过这个方法对性能可能会有较大的影响,参考下面的代码。
                System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace();
                System.Diagnostics.StackFrame frame = trace.GetFrame(1); 
                System.Reflection.MethodBase method = frame.GetMethod();            string methodName = method.Name;    // 获取方法名
                string typeName = method.DeclaringType.Name;  // 获取所在类名称
      

  4.   

    第一种方案:自己建给类给出属性
    第二种方案:反射,这个我也不是很熟悉,你可以msdn下