@@ -6,15 +6,15 @@ namespace Sentry.Extensibility
66 public class RequestBodyExtractionDispatcher : IRequestPayloadExtractor
77 {
88 private readonly SentryOptions _options ;
9- private readonly RequestSize _size ;
9+ private readonly Func < RequestSize > _sizeSwitch ;
1010
1111 internal IEnumerable < IRequestPayloadExtractor > Extractors { get ; }
1212
13- public RequestBodyExtractionDispatcher ( IEnumerable < IRequestPayloadExtractor > extractors , SentryOptions options , RequestSize size )
13+ public RequestBodyExtractionDispatcher ( IEnumerable < IRequestPayloadExtractor > extractors , SentryOptions options , Func < RequestSize > sizeSwitch )
1414 {
1515 Extractors = extractors ?? throw new ArgumentNullException ( nameof ( extractors ) ) ;
1616 _options = options ?? throw new ArgumentNullException ( nameof ( options ) ) ;
17- _size = size ;
17+ _sizeSwitch = sizeSwitch ?? throw new ArgumentNullException ( nameof ( sizeSwitch ) ) ;
1818 }
1919
2020 public object ExtractPayload ( IHttpRequest request )
@@ -24,13 +24,15 @@ public object ExtractPayload(IHttpRequest request)
2424 return null ;
2525 }
2626
27- switch ( _size )
27+ var size = _sizeSwitch ( ) ;
28+
29+ switch ( size )
2830 {
2931 case RequestSize . Small when request . ContentLength < 1_000 :
3032 case RequestSize . Medium when request . ContentLength < 10_000 :
3133 case RequestSize . Always :
3234 _options . DiagnosticLogger . LogDebug ( "Attempting to read request body of size: {0}, configured max: {1}." ,
33- request . ContentLength , _size ) ;
35+ request . ContentLength , size ) ;
3436
3537 foreach ( var extractor in Extractors )
3638 {
@@ -52,7 +54,7 @@ public object ExtractPayload(IHttpRequest request)
5254 break ;
5355 default :
5456 _options . DiagnosticLogger . LogWarning ( "Ignoring request with Size {0} and configuration RequestSize {1}" ,
55- request . ContentLength , _size ) ;
57+ request . ContentLength , size ) ;
5658 break ;
5759 }
5860
0 commit comments