使用 Castle.DynamicProxy 调用 2 个目标
假设我有一个接口 IInterface。 假设我有同一个 IInterface 的 2 个实现(foo 和 bar)。 是否可以在两个目标上调用相同的方法?
Say I have an interface IInterface.
Say I have 2 implementations of the same IInterface (foo & bar).
Is it possible to invoke the same method on both targets?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这取决于您如何处理它,
通常它是不可能的(应该返回哪个返回值?),但是没有什么可以阻止您将另一个目标包装在拦截器中并由拦截器调用它。
It depends how you approach it,
Generally its not possible (which return value should be returned?), but nothing stops you from having another target wrapped in an interceptor, and having it invoked by the interceptor.
我想出了这个,但它使用反射,因此它不如对 Y 适配器类型代理的“本机”支持好...
使用 QueueUserWorkItem 保证调用该方法的线程不会在性能方面受到太大影响...
任何更好的解决方案都非常受欢迎!
I came up with this, but it uses reflection so it's not as good as "native" support for Y-adapter type of proxy...
Using the QueueUserWorkItem guarantees that the thread invoking the method is not going to suffer much in terms of performance...
Any better solution is more than welcome!