说我有一个接口IInterface。 假设我有2个相同的IInterface(foo& bar)的实现。 是否可以在两个目标上调用相同的方法?
答案 0 :(得分:0)
这取决于你如何接近它,
通常它不可能(应该返回哪个返回值?),但是没有什么可以阻止你让另一个目标包含在拦截器中,并让它被拦截器调用。
答案 1 :(得分:0)
我想出了这个,但是它使用反射,所以它不如Y-adapter类型的代理的“本机”支持那么好......
public void Intercept(IInvocation invocation)
{
invocation.Proceed();
ThreadPool.QueueUserWorkItem(new WaitCallback(
(object o) =>
{
invocation.Method.Invoke(newTarget, invocation.Arguments);
}
)
);
}
使用QueueUserWorkItem可以保证调用方法的线程在性能方面不会受到太大影响...... 任何更好的解决方案都非常受欢迎!