public static void BeforeExit(this MethodBody body, PointCut action) { foreach (var ret in body.Instructions.Where(i => i.OpCode == OpCodes.Ret).ToList()) { var cut = new Cut(body, ret); cut.Here(action).Write(OpCodes.Ret); cut.Remove(); } }