Я придумал это, но он использует отражение, поэтому он не так хорош, как "нативная" поддержка прокси-типа Y-типа ...
public void Intercept(IInvocation invocation)
{
invocation.Proceed();
ThreadPool.QueueUserWorkItem(new WaitCallback(
(object o) =>
{
invocation.Method.Invoke(newTarget, invocation.Arguments);
}
)
);
}
Использование QueueUserWorkItem гарантирует, что поток, вызывающий метод, не будет сильно страдать с точки зрения производительности ...
Любое лучшее решение приветствуется!