public void Intercept(Castle.Core.Interceptor.IInvocation invocation)
{
IMethodInterceptor[] interceptors = ObtainAdvicesForMethod(invocation.Method,
invocation.InvocationTarget, invocation.Arguments);
if (interceptors.Length == 0)
{
// Nothing to intercept.
// Get on with it!
invocation.Proceed();
return;
}
InvocationComposite alliance_invocation = new InvocationComposite(
interceptors, invocation, invocation.Arguments);
object retval = alliance_invocation.Proceed();
invocation.ReturnValue = retval;
}