0

假设我有一个接口 IInterface。假设我有 2 个相同 IInterface 的实现(foo & bar)。是否可以在两个目标上调用相同的方法?

4

2 回答 2

0

我想出了这个,但它使用反射,所以它不如“本机”支持 Y 适配器类型的代理......

public void Intercept(IInvocation invocation)
{
    invocation.Proceed();
    ThreadPool.QueueUserWorkItem(new WaitCallback(
        (object o) =>
            {
                invocation.Method.Invoke(newTarget, invocation.Arguments);
            }
            )
    );
}

使用 QueueUserWorkItem 可以保证调用该方法的线程在性能方面不会受到太大影响......任何更好的解决方案都非常受欢迎!

于 2010-01-20T00:39:46.840 回答
0

这取决于你如何接近它,

通常这是不可能的(应该返回哪个返回值?),但没有什么能阻止您将另一个目标包装在拦截器中,并让拦截器调用它。

于 2010-01-19T08:10:54.133 回答