有没有办法获得调用某种方法的类的实例?C#中获取方法的调用者#
3
A
回答
7
您可以通过检查调用堆栈调用方法的名称。获取类实例是一个不同的故事,并不容易实现(如果可能的话;我从来没有真正尝试过)。例如,你应该考虑从static
方法调用你的方法的可能性,在这种情况下,没有类实例可以找到。
无论哪种方式,这通常不是一件好事。如果该方法需要访问任何调用它的类实例,请将其添加为方法中的参数。
1
您可以检查StackTrace.GetFrame方法。 :)
0
那么,如果你在方法中,你可以使用这一行来获取类的类型。但是我不确定它是否真的是你想要的,因为你要求实例。
Type yourclass = MethodBase.GetCurrentMethod().DeclaringType;
2
不是。虽然您可以在堆栈中找到一些信息,但有几种情况下不存在实例,例如托管非托管代码边界(Windows消息,回调,COM互操作等)或简单的静态方法。
也许你应该首先解释你想达到的目标,以便找到替代解决方案。
0
如果可能的话,你可以尝试添加
object sender
参数为常见之中WPF方法的例子。
相关问题
- 1. 获取对方法调用者的引用的一般方法?
- 2. C#方法调用者
- 3. 获取方法被调用的方法?
- 4. 如何获取此方法的调用者类
- 5. 从AsyncTask获取结果给调用者类的最佳方法
- 6. c中的获取者和安装者#
- 7. 尝试从C#调用AS3中的方法时获取HRESULT E_FAIL
- 8. 在C中获取方法#
- 9. ruby:获取调用者类
- 10. 获取进程调用者
- 11. 插件中的jQuery方法调用者
- 12. PHP - 获取类,其中调用方法
- 13. 从REST调用中获取方法
- 14. 获取不在Ruby方法中调用
- 15. 如何确定Objective-C中我的方法的“调用者”?
- 16. 获取方法的作者,如codelens
- 17. C++中的调用方法
- 18. 在即时窗口中调用C#方法VS,获取'System.Threading.ThreadAbortException'
- 19. 如何提高代码获取调用方法在C#中
- 20. 调用Web API获取使用数据参数的方法c#
- 21. 在对象中获取调用者类名称的最佳方法是什么?
- 22. 在Rails中获取调用者URL
- 23. 获取调用方法的名称javascript
- 24. 调用获取不同类的方法
- 25. 获取调用方法的名称
- 26. 获取NSTimer调用方法的问题
- 27. 获取调用方法的参数值
- 28. 获取调用方法的进度
- 29. C#如何获取方法调用的数量?
- 30. 获取正确的Lua元方法来调用(C-api)