public void Intercept(IInvocation invocation) { if (invocation.Method == method) { invocation.ReturnValue = interceptor.Do((TRequest)invocation.Arguments.Single(), request => { invocation.Arguments[0] = request; invocation.Proceed(); return((TResponse)invocation.ReturnValue); }); } else { invocation.Proceed(); } }