43 instantiations of ParameterBindingMethodCache
Microsoft.AspNetCore.Http.Extensions (2)
src\Shared\ParameterBindingMethodCache.cs (2)
30
private static readonly Lazy<ParameterBindingMethodCache> _instance = new(() => new
ParameterBindingMethodCache
());
32
private static readonly Lazy<ParameterBindingMethodCache> _nonThrowingInstance = new(() => new
ParameterBindingMethodCache
(throwOnInvalidMethod: false));
Microsoft.AspNetCore.Http.Extensions.Tests (41)
ParameterBindingMethodCacheTests.cs (41)
29
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(@type);
47
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(typeof(Uri));
69
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(@type);
101
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(@type);
126
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(@type);
164
Assert.True(new
ParameterBindingMethodCache
().HasTryParseMethod(parameterInfo.ParameterType));
171
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(type);
179
var methodFound = new
ParameterBindingMethodCache
().FindTryParseMethod(type);
199
var cache = new
ParameterBindingMethodCache
(preferNonGenericEnumParseOverload: true);
222
var cache = new
ParameterBindingMethodCache
();
253
var cache = new
ParameterBindingMethodCache
();
342
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
349
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
356
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
363
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
370
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
377
Assert.True(new
ParameterBindingMethodCache
().HasBindAsyncMethod(parameterInfo));
384
var cache = new
ParameterBindingMethodCache
();
402
var cache = new
ParameterBindingMethodCache
();
420
var cache = new
ParameterBindingMethodCache
();
436
var cache = new
ParameterBindingMethodCache
();
452
var cache = new
ParameterBindingMethodCache
();
474
var cache = new
ParameterBindingMethodCache
();
486
var cache = new
ParameterBindingMethodCache
();
500
var cache = new
ParameterBindingMethodCache
();
512
var cache = new
ParameterBindingMethodCache
();
524
var cache = new
ParameterBindingMethodCache
();
557
() => new
ParameterBindingMethodCache
().FindTryParseMethod(type));
567
Assert.Null(new
ParameterBindingMethodCache
(throwOnInvalidMethod: false).FindTryParseMethod(type));
574
() => new
ParameterBindingMethodCache
().FindTryParseMethod(typeof(TryParseFromMultipleInterfaces)));
581
Assert.Null(new
ParameterBindingMethodCache
(throwOnInvalidMethod: false).FindTryParseMethod(typeof(TryParseFromMultipleInterfaces)));
589
var method = new
ParameterBindingMethodCache
().FindTryParseMethod(type);
616
var cache = new
ParameterBindingMethodCache
();
631
var cache = new
ParameterBindingMethodCache
(throwOnInvalidMethod: false);
640
var cache = new
ParameterBindingMethodCache
();
649
var cache = new
ParameterBindingMethodCache
(throwOnInvalidMethod: false);
660
var cache = new
ParameterBindingMethodCache
();
682
var cache = new
ParameterBindingMethodCache
();
692
var cache = new
ParameterBindingMethodCache
();
702
var cache = new
ParameterBindingMethodCache
();
714
var cache = new
ParameterBindingMethodCache
();
49 references to ParameterBindingMethodCache
Microsoft.AspNetCore.Http.Extensions (19)
RequestDelegateFactory.cs (10)
91
private static readonly ParameterExpression HttpContextExpr =
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr;
107
private static readonly ParameterExpression TempSourceStringExpr =
ParameterBindingMethodCache
.SharedExpressions.TempSourceStringExpr;
790
ParameterBindingMethodCache
.Instance.HasTryParseMethod(parameter.ParameterType) ||
791
(parameter.ParameterType.IsArray &&
ParameterBindingMethodCache
.Instance.HasTryParseMethod(parameter.ParameterType.GetElementType()!));
867
else if (
ParameterBindingMethodCache
.Instance.HasBindAsyncMethod(parameter))
872
else if (parameter.ParameterType == typeof(string) ||
ParameterBindingMethodCache
.Instance.HasTryParseMethod(parameter.ParameterType))
902
(parameter.ParameterType.IsArray &&
ParameterBindingMethodCache
.Instance.HasTryParseMethod(parameter.ParameterType.GetElementType()!))))
1572
var (constructor, parameters) =
ParameterBindingMethodCache
.Instance.FindConstructor(parameterType);
1683
var tryParseMethodCall =
ParameterBindingMethodCache
.Instance.FindTryParseMethod(nonNullableParameterType);
1987
var bindAsyncMethod =
ParameterBindingMethodCache
.Instance.FindBindAsyncMethod(parameter);
src\Shared\ParameterBindingMethodCache.cs (8)
15
using static Microsoft.AspNetCore.Http.
ParameterBindingMethodCache
.SharedExpressions;
24
private static readonly MethodInfo ConvertValueTaskMethod = typeof(
ParameterBindingMethodCache
).GetMethod(nameof(ConvertValueTask), BindingFlags.NonPublic | BindingFlags.Static)!;
25
private static readonly MethodInfo ConvertValueTaskOfNullableResultMethod = typeof(
ParameterBindingMethodCache
).GetMethod(nameof(ConvertValueTaskOfNullableResult), BindingFlags.NonPublic | BindingFlags.Static)!;
26
private static readonly MethodInfo BindAsyncMethod = typeof(
ParameterBindingMethodCache
).GetMethod(nameof(BindAsync), BindingFlags.NonPublic | BindingFlags.Static)!;
30
private static readonly Lazy<
ParameterBindingMethodCache
> _instance = new(() => new ParameterBindingMethodCache());
31
public static
ParameterBindingMethodCache
Instance = _instance.Value;
32
private static readonly Lazy<
ParameterBindingMethodCache
> _nonThrowingInstance = new(() => new ParameterBindingMethodCache(throwOnInvalidMethod: false));
33
public static
ParameterBindingMethodCache
NonThrowingInstance = _nonThrowingInstance.Value;
src\Shared\PropertyAsParameterInfo.cs (1)
64
public static ReadOnlySpan<ParameterInfo> Flatten(ParameterInfo[] parameters,
ParameterBindingMethodCache
cache)
Microsoft.AspNetCore.Http.Extensions.Tests (30)
ParameterBindingMethodCacheTests.cs (30)
199
var
cache = new ParameterBindingMethodCache(preferNonGenericEnumParseOverload: true);
211
parsedValue),
ParameterBindingMethodCache
.SharedExpressions.TempSourceStringExpr).Compile();
222
var
cache = new ParameterBindingMethodCache();
233
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
253
var
cache = new ParameterBindingMethodCache();
264
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
384
var
cache = new ParameterBindingMethodCache();
389
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
402
var
cache = new ParameterBindingMethodCache();
407
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
420
var
cache = new ParameterBindingMethodCache();
425
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
436
var
cache = new ParameterBindingMethodCache();
441
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
452
var
cache = new ParameterBindingMethodCache();
457
ParameterBindingMethodCache
.SharedExpressions.HttpContextExpr).Compile();
474
var
cache = new ParameterBindingMethodCache();
486
var
cache = new ParameterBindingMethodCache();
500
var
cache = new ParameterBindingMethodCache();
512
var
cache = new ParameterBindingMethodCache();
524
var
cache = new ParameterBindingMethodCache();
616
var
cache = new ParameterBindingMethodCache();
631
var
cache = new ParameterBindingMethodCache(throwOnInvalidMethod: false);
640
var
cache = new ParameterBindingMethodCache();
649
var
cache = new ParameterBindingMethodCache(throwOnInvalidMethod: false);
660
var
cache = new ParameterBindingMethodCache();
682
var
cache = new ParameterBindingMethodCache();
692
var
cache = new ParameterBindingMethodCache();
702
var
cache = new ParameterBindingMethodCache();
714
var
cache = new ParameterBindingMethodCache();