public async Task Around(PointcutContext context) { Console.WriteLine(context.InvocationMethod.Name + "-->Start"); await context.Proceed(); Console.WriteLine(context.InvocationMethod.Name + "-->End"); }
public async Task RunWithTransaction(PointcutContext aspectContext) { logger.Debug($"start transactionScope on `{aspectContext.InvocationMethod.DeclaringType.FullName + "." + aspectContext.InvocationMethod.Name}`"); using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await aspectContext.Proceed(); if (Transaction.Current.TransactionInformation.Status == TransactionStatus.Active) { scope.Complete(); logger.Debug($"submit transactionScope on `{aspectContext.InvocationMethod.DeclaringType.FullName + "." + aspectContext.InvocationMethod.Name}`"); } } }