@@ -52,6 +52,7 @@ public static partial class RequestDelegateFactory
5252 private static readonly MethodInfo ExecuteTaskResultOfTMethod = typeof ( RequestDelegateFactory ) . GetMethod ( nameof ( ExecuteTaskResult ) , BindingFlags . NonPublic | BindingFlags . Static ) ! ;
5353 private static readonly MethodInfo ExecuteValueResultTaskOfTMethod = typeof ( RequestDelegateFactory ) . GetMethod ( nameof ( ExecuteValueTaskResult ) , BindingFlags . NonPublic | BindingFlags . Static ) ! ;
5454 private static readonly MethodInfo ExecuteAwaitedReturnMethod = typeof ( RequestDelegateFactory ) . GetMethod ( nameof ( ExecuteAwaitedReturn ) , BindingFlags . NonPublic | BindingFlags . Static ) ! ;
55+ private static readonly MethodInfo GetHeaderSplitMethod = typeof ( ParsingHelpers ) . GetMethod ( nameof ( ParsingHelpers . GetHeaderSplit ) , BindingFlags . Public | BindingFlags . Static , [ typeof ( IHeaderDictionary ) , typeof ( string ) ] ) ! ;
5556 private static readonly MethodInfo GetRequiredServiceMethod = typeof ( ServiceProviderServiceExtensions ) . GetMethod ( nameof ( ServiceProviderServiceExtensions . GetRequiredService ) , BindingFlags . Public | BindingFlags . Static , new Type [ ] { typeof ( IServiceProvider ) } ) ! ;
5657 private static readonly MethodInfo GetServiceMethod = typeof ( ServiceProviderServiceExtensions ) . GetMethod ( nameof ( ServiceProviderServiceExtensions . GetService ) , BindingFlags . Public | BindingFlags . Static , new Type [ ] { typeof ( IServiceProvider ) } ) ! ;
5758 private static readonly MethodInfo GetRequiredKeyedServiceMethod = typeof ( ServiceProviderKeyedServiceExtensions ) . GetMethod ( nameof ( ServiceProviderKeyedServiceExtensions . GetRequiredKeyedService ) , BindingFlags . Public | BindingFlags . Static , new Type [ ] { typeof ( IServiceProvider ) , typeof ( object ) } ) ! ;
@@ -1958,10 +1959,7 @@ private static Expression BindParameterFromExpression(
19581959 private static Expression BindParameterFromProperty ( ParameterInfo parameter , MemberExpression property , PropertyInfo itemProperty , string key , RequestDelegateFactoryContext factoryContext , string source )
19591960 {
19601961 var valueExpression = ( source == "header" && parameter . ParameterType . IsArray )
1961- ? Expression . Call (
1962- typeof ( ParsingHelpers ) . GetMethod ( nameof ( ParsingHelpers . GetHeaderSplit ) , BindingFlags . Public | BindingFlags . Static , [ typeof ( IHeaderDictionary ) , typeof ( string ) ] ) ! ,
1963- property ,
1964- Expression . Constant ( key ) )
1962+ ? Expression . Call ( GetHeaderSplitMethod , property , Expression . Constant ( key ) )
19651963 : GetValueFromProperty ( property , itemProperty , key , GetExpressionType ( parameter . ParameterType ) ) ;
19661964
19671965 return BindParameterFromValue ( parameter , valueExpression , factoryContext , source ) ;
0 commit comments