private void PostInterception( object target, Method method, ParameterAndValue[] parameters, PreVerbExecutionContext preVerbExecutionContext, Exception verbException) { var postVerbExecutionContext = new PostVerbExecutionContext( method, target, parameters, preVerbExecutionContext.Cancel, verbException, preVerbExecutionContext.UserContext); // registered interceptors get top priority // if (m_registration.RegisteredPostVerbInterceptor != null) { m_registration.RegisteredPostVerbInterceptor(postVerbExecutionContext); } else { var postInterceptionMethods = Type.GetMethodsWith <PostVerbExecutionAttribute>(); // try a defined interceptor type // if (postInterceptionMethods.Any()) { Debug.Assert(postInterceptionMethods.Count() == 1); var postInterceptionMethod = postInterceptionMethods.First(); MethodInvoker.Invoke(postInterceptionMethod, target, new[] { postVerbExecutionContext }); } else { // try a defined interceptor type // if (Type.HasAttribute <VerbInterception>()) { var interception = Type.GetAttribute <VerbInterception>(); var interceptor = (IPostVerbInterceptor)Activator.CreateInstance(interception.InterceptorType); interceptor.AfterVerbExecution(postVerbExecutionContext); } } } }
static void Post(PostVerbExecutionContext c, string y) { }
public void AfterVerbExecution(PostVerbExecutionContext context) { PostContext = context; }
public void Post(PostVerbExecutionContext context) { Context = context; }
private void Pre2(PostVerbExecutionContext context) { }
private void Post(PostVerbExecutionContext context) { PostContext = context; }