繁体   English   中英

通过反射可能获取调用方法类的实例,或调用堆栈中的任何方法?

[英]Possible by reflection to get the instance of the calling methods class, or any method in the callstack?

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

尝试“破解” Web服务的解决方案以传递传入呼叫的​​超时值(当您调用一个Web服务时,该Web服务又使用WSE调用新的Web服务。当客户端将超时时间设置为5分钟和下一个级别时,它很烂仅具有默认的100秒,或相反。)

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

所以我想知道我是否将stacktrace getmethod分为2个级别,是否可以以任何方式获取该实例? 到目前为止,我只能获取该类的Type而不是实例。

我不熟悉WSE,但是非常了解反射。 要获得实例,您需要具有其引用或对引用的引用的内容。 如果可以找到任何以调用对象作为参考的类,请使用Reflection.GetField,Reflection.GetProperty和/或Reflection.GetMethod来获取值。 即使这意味着要遍历5层具有受保护字段的图层,只要您可以走到那里,就可以找到它。 但是,如果这是一个干净的休息时间,例如不同线程或exe的生成,并且没有任何识别信息通过,那么您就不走运了。 您将必须使用外部源来存储所需的超时,然后让呼叫的每一端都引用它。 使用Red Gate .Net Reflector查看参考类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM