代码之家  ›  专栏  ›  技术社区  ›  Paperino

使用Castle.DynamicProxy调用2个目标

  •  0
  • Paperino  · 技术社区  · 14 年前

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

    2 回复  |  直到 14 年前
        1
  •  0
  •   Krzysztof Kozmic    14 年前

    这取决于你如何处理,

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

        2
  •  0
  •   Paperino    14 年前

    我想到了这个,但是它使用了反射,所以它不如“原生”支持Y适配器类型的代理。。。

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

    任何更好的解决方案都是值得欢迎的!