Example #1
0
 void IMethodAdvice.Advise(MethodAdviceContext context)
 {
     if (context.IsAwaitable() && context.IsAsync())
     {
         AdviseAsync(context, async() => await context.ProceedAsync1());
     }
     else if (context.IsAwaitable())
     {
         AdviseAsync(context, context.ProceedAsync1);
     }
     else
     {
         AdviseSync(context, () =>
         {
             context.Proceed();
             return(1);
         });
     }
 }
 private async Task <ActivationContext> DoAfter(MethodAdviceContext context, ActivationContext ctx)
 {
     if (context.IsAwaitable())
     {
         ctx = await AfterProcesssingAsync(ctx);
     }
     else
     {
         ctx = AfterProcesssing(ctx);
     }
     return(ctx);
 }
        private async Task <ActivationContext> DoBefore(MethodAdviceContext context)
        {
            ActivationContext ctx;

            if (context.IsAwaitable())
            {
                ctx = await BeforeProcessingAsync(new ActivationContext(context));
            }
            else
            {
                ctx = BeforeProcessing(new ActivationContext(context));
            }
            return(ctx);
        }