代码之家  ›  专栏  ›  技术社区  ›  Chen Kinnrot

获取C中方法的调用方#

  •  3
  • Chen Kinnrot  · 技术社区  · 15 年前

    是否有方法获取调用某个方法的类的实例?

    5 回复  |  直到 15 年前
        1
  •  7
  •   Fredrik Mörk    15 年前

    你可以得到 方法的名称 通过检查调用堆栈来调用的。获取 类实例 是一个不同的故事,不容易实现(如果可能的话,我从来没有真正尝试过)。例如,您应该考虑从 static 方法,在这种情况下,没有要查找的类实例。

    不管怎样,这通常不是一件好事。如果方法需要访问调用它的任何类实例,请将其作为参数添加到方法中。

        2
  •  2
  •   Lucero    15 年前

    不是真的。虽然您可以在堆栈上找到一些信息,但在某些情况下没有实例,例如托管的非托管代码边界(Windows消息、回调、COM互操作等)或简单的静态方法。

    也许你应该先解释一下你想要达到的目标,以便找到其他的解决方案。

        3
  •  0
  •   Aggelos Biboudis    15 年前

    您可以检查stacktrace.get_帧方法。:)

        4
  •  0
  •   Francis B.    15 年前

    如果您在方法中,那么可以使用此行获取类的类型。但我不确定这是否真的是你想要的,因为你要求 实例 .

    Type yourclass = MethodBase.GetCurrentMethod().DeclaringType;
    
        5
  •  0
  •   user170188    15 年前

    如果可能,您可以尝试添加

    object sender

    例如,参数as在wpf方法中很常见。