@@ -41,10 +41,15 @@ internal static async Task<TResult> InjectBehaviourImplementationAsync<TResult>(
41
41
Func < Context , CancellationToken , Task > injectedBehaviour ,
42
42
Func < Context , CancellationToken , Task < Double > > injectionRate ,
43
43
Func < Context , CancellationToken , Task < bool > > enabled ,
44
+ Func < Context , CancellationToken , Task > beforeInjectCallback ,
44
45
bool continueOnCapturedContext )
45
46
{
46
47
if ( await ShouldInjectAsync ( context , cancellationToken , injectionRate , enabled , continueOnCapturedContext ) . ConfigureAwait ( continueOnCapturedContext ) )
47
48
{
49
+ if ( beforeInjectCallback != null )
50
+ {
51
+ await beforeInjectCallback ( context , cancellationToken ) ;
52
+ }
48
53
await injectedBehaviour ( context , cancellationToken ) . ConfigureAwait ( continueOnCapturedContext ) ;
49
54
}
50
55
@@ -60,6 +65,7 @@ internal static async Task<TResult> InjectExceptionImplementationAsync<TResult>(
60
65
Func < Context , CancellationToken , Task < Exception > > injectedException ,
61
66
Func < Context , CancellationToken , Task < Double > > injectionRate ,
62
67
Func < Context , CancellationToken , Task < bool > > enabled ,
68
+ Func < Context , CancellationToken , Task > beforeInjectCallback ,
63
69
bool continueOnCapturedContext )
64
70
{
65
71
if ( await ShouldInjectAsync ( context , cancellationToken , injectionRate , enabled , continueOnCapturedContext ) . ConfigureAwait ( continueOnCapturedContext ) )
@@ -71,6 +77,10 @@ internal static async Task<TResult> InjectExceptionImplementationAsync<TResult>(
71
77
72
78
if ( exception != null )
73
79
{
80
+ if ( beforeInjectCallback != null )
81
+ {
82
+ await beforeInjectCallback ( context , cancellationToken ) ;
83
+ }
74
84
throw exception ;
75
85
}
76
86
}
@@ -85,10 +95,15 @@ internal static async Task<TResult> InjectResultImplementationAsync<TResult>(
85
95
Func < Context , CancellationToken , Task < TResult > > injectedResult ,
86
96
Func < Context , CancellationToken , Task < Double > > injectionRate ,
87
97
Func < Context , CancellationToken , Task < bool > > enabled ,
98
+ Func < Context , CancellationToken , Task > beforeInjectCallback ,
88
99
bool continueOnCapturedContext )
89
100
{
90
101
if ( await ShouldInjectAsync ( context , cancellationToken , injectionRate , enabled , continueOnCapturedContext ) . ConfigureAwait ( continueOnCapturedContext ) )
91
102
{
103
+ if ( beforeInjectCallback != null )
104
+ {
105
+ await beforeInjectCallback ( context , cancellationToken ) ;
106
+ }
92
107
return await injectedResult ( context , cancellationToken ) . ConfigureAwait ( continueOnCapturedContext ) ;
93
108
}
94
109
0 commit comments