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

时间:2010-02-17 08:27:02

标签: c# reflection instance wse

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

尝试“破解”web服务的解决方案以传递传入呼叫的​​超时值(当您调用web服务时,该服务又使用WSE调用新的Web服务。当客户端设置超时为5分钟时,它会很糟糕下一级只有100秒的默认值,反之亦然。)。

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

所以我想知道我是否将堆栈跟踪getmethod提升了2级,我能以任何方式获得该实例吗?到目前为止,我只能获得该类的类型,而不是实例。

1 个答案:

答案 0 :(得分:0)

我对WSE并不熟悉但很清楚地知道反思。要获取实例,您需要具有引用或引用引用的内容。如果您可以找到任何具有调用对象作为引用的类,请使用Reflection.GetField,Reflection.GetProperty和/或Reflection.GetMethod来获取该值。即使它意味着通过5层保护区域,只要你可以在那里找到它。但是如果它是一个干净的休息,就像一个不同的线程或exe的产生,并且没有传递识别信息,那么你运气不好。您将不得不使用外部源来存储所需的超时,然后让呼叫的每一侧都引用它。使用Red Gate .Net Reflector查看类以供参考。