c# - 可以通过反射获取调用方法类的实例,或者调用栈中的任何方法吗?

标签 c# reflection instance wse

是否可以使用反射来获取调用方法类的实例?

尝试“破解”Web 服务的解决方案以传递传入调用的​​超时值(当您调用 Web 服务时,该 Web 服务又使用 WSE 调用新的 Web 服务。当客户端设置 5 分钟的超时并且下一个级别只有 100 秒的默认值,或者相​​反。)。

我已经有一个自定义策略,一旦代理实例调用 .SetProxy(...) 就会被调用。这是我想要访问的实例,但我可以开始对其进行编码的策略代码是下面的 3 个“级别”。

所以我想知道如果我向上执行 2 个级别的 stacktrace getmethod,我是否能够以任何方式获取该实例?到目前为止,我只能获得该类的类型,而不能获得实例。

最佳答案

我对华尔街英语不熟悉,但对反射(reflection)很了解。要获取实例,您需要具有引用或对引用的引用的内容。如果您可以找到任何将调用对象作为引用的类,请使用 Reflection.GetField、Reflection.GetProperty 和/或 Reflection.GetMethod 获取该值。就算要穿过5层有保护区的地方,只要能走到那儿,就能找到。但如果它是干净利落的,比如不同线程或 exe 的衍生,并且没有传递任何识别信息,那么你就不走运了。您将不得不使用外部源来存储所需的超时,然后让调用的每一方都引用它。使用 Red Gate .Net Reflector 查看类以供引用。

关于c# - 可以通过反射获取调用方法类的实例,或者调用栈中的任何方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279211/

相关文章:

c# - 如何为新的 C# 类/接口(interface)编辑 Visual Studio 模板?

c# - 动态返回位图给浏览器

c# - 在运行时使用反射构造泛型的具体类型的实例

python - 创建具有相同属性的方法

Python 类(属性错误 : '' object has no attribute '' )

objective-c - Objc - 在 ivars 和实例方法上调用和设置值

c# - 听到 "element ' 行为“具有无效的子元素”应该被忽略,但因此无法更新服务引用

c# - Linq 选择不同的内部值

c# - 获取有关程序集的信息

python - 如何在python中将另一个类的成员函数复制到myclass中?