2009-09-08 117 views

回答

7

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

无论哪种方式,这通常不是一件好事。如果该方法需要访问任何调用它的类实例,请将其添加为方法中的参数。

1

您可以检查StackTrace.GetFrame方法。 :)

0

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

Type yourclass = MethodBase.GetCurrentMethod().DeclaringType; 
2

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

也许你应该首先解释你想达到的目标,以便找到替代解决方案。

0

如果可能的话,你可以尝试添加

object sender

参数为常见之中WPF方法的例子。