protected virtual void PreProceed(InvocationContext invocationContext, object[] parameters) { }
protected virtual void PostProceed(InvocationContext invocationContext, ref object returnValue, params object[] args) { }