Skip to content

Commit 3f55325

Browse files
authored
Prevent creating list for single endpoint (#36852)
1 parent fa613b1 commit 3f55325

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/Http/Routing/src/Builder/RouteHandlerBuilder.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ namespace Microsoft.AspNetCore.Builder
1111
/// </summary>
1212
public sealed class RouteHandlerBuilder : IEndpointConventionBuilder
1313
{
14-
private readonly IEnumerable<IEndpointConventionBuilder> _endpointConventionBuilders;
14+
private readonly IEnumerable<IEndpointConventionBuilder>? _endpointConventionBuilders;
15+
private readonly IEndpointConventionBuilder? _endpointConventionBuilder;
1516

1617
/// <summary>
1718
/// Instantiates a new <see cref="RouteHandlerBuilder" /> given a single
@@ -20,7 +21,7 @@ public sealed class RouteHandlerBuilder : IEndpointConventionBuilder
2021
/// <param name="endpointConventionBuilder">The <see cref="IEndpointConventionBuilder" /> to instantiate with.</param>
2122
internal RouteHandlerBuilder(IEndpointConventionBuilder endpointConventionBuilder)
2223
{
23-
_endpointConventionBuilders = new List<IEndpointConventionBuilder>() { endpointConventionBuilder };
24+
_endpointConventionBuilder = endpointConventionBuilder;
2425
}
2526

2627
/// <summary>
@@ -39,9 +40,16 @@ public RouteHandlerBuilder(IEnumerable<IEndpointConventionBuilder> endpointConve
3940
/// <param name="convention">The convention to add to the builder.</param>
4041
public void Add(Action<EndpointBuilder> convention)
4142
{
42-
foreach (var endpointConventionBuilder in _endpointConventionBuilders)
43+
if (_endpointConventionBuilder != null)
4344
{
44-
endpointConventionBuilder.Add(convention);
45+
_endpointConventionBuilder.Add(convention);
46+
}
47+
else
48+
{
49+
foreach (var endpointConventionBuilder in _endpointConventionBuilders!)
50+
{
51+
endpointConventionBuilder.Add(convention);
52+
}
4553
}
4654
}
4755
}

0 commit comments

Comments
 (0)