вызывая 2 цели с помощью Castle.DynamicProxy - PullRequest
0 голосов
/ 19 января 2010

Скажем, у меня есть интерфейс IInterface.Скажем, у меня есть 2 реализации одного и того же интерфейса (foo & bar).Можно ли вызвать один и тот же метод для обеих целей?

Ответы [ 2 ]

0 голосов
/ 20 января 2010

Я придумал это, но он использует отражение, поэтому он не так хорош, как "нативная" поддержка прокси-типа Y-типа ...

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

Использование QueueUserWorkItem гарантирует, что поток, вызывающий метод, не будет сильно страдать с точки зрения производительности ... Любое лучшее решение приветствуется!

0 голосов
/ 19 января 2010

Зависит от того, как вы к нему подходите,

Обычно это невозможно (какое возвращаемое значение должно быть возвращено?), Но ничто не мешает вам перехватить другую цель в перехватчике и вызвать ее перехватчиком.

...