Skip to content

Commit 024c491

Browse files
Simplify internal types with default constructors
1 parent 8f86407 commit 024c491

File tree

8 files changed

+32
-100
lines changed

8 files changed

+32
-100
lines changed

src/AspNetCore/OData/src/Asp.Versioning.OData.ApiExplorer/DependencyInjection/IApiVersioningBuilderExtensions.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,9 @@ private static void AddApiExplorerServices( IApiVersioningBuilder builder )
6060
#pragma warning disable IDE0079
6161
#pragma warning disable CA1812
6262

63-
private sealed class ODataApiExplorerOptionsAdapter : IOptionsFactory<ApiExplorerOptions>
63+
private sealed class ODataApiExplorerOptionsAdapter( IOptionsFactory<ODataApiExplorerOptions> factory )
64+
: IOptionsFactory<ApiExplorerOptions>
6465
{
65-
private readonly IOptionsFactory<ODataApiExplorerOptions> factory;
66-
67-
public ODataApiExplorerOptionsAdapter( IOptionsFactory<ODataApiExplorerOptions> factory ) => this.factory = factory;
68-
6966
public ApiExplorerOptions Create( string name ) => factory.Create( name );
7067
}
7168
}

src/AspNetCore/OData/src/Asp.Versioning.OData/DependencyInjection/IApiVersioningBuilderExtensions.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,8 @@ IHttpContextFactory NewFactory( IServiceProvider serviceProvider )
161161
return Describe( typeof( IHttpContextFactory ), NewFactory, lifetime );
162162
}
163163

164-
private sealed class HttpContextFactoryDecorator : IHttpContextFactory
164+
private sealed class HttpContextFactoryDecorator( IHttpContextFactory decorated ) : IHttpContextFactory
165165
{
166-
private readonly IHttpContextFactory decorated;
167-
168-
public HttpContextFactoryDecorator( IHttpContextFactory decorated ) => this.decorated = decorated;
169-
170166
public HttpContext Create( IFeatureCollection featureCollection )
171167
{
172168
// features do not support cloning or DI, which is precisely why ASP.NET Core no longer supports

src/AspNetCore/WebApi/src/Asp.Versioning.Http/Builder/VersionedEndpointRouteBuilder.cs

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,12 @@ public virtual IApplicationBuilder CreateApplicationBuilder() =>
5959
public virtual void Add( Action<EndpointBuilder> convention ) =>
6060
conventionBuilder.Add( convention );
6161

62-
private sealed class ServiceProviderDecorator : IServiceProvider
62+
private sealed class ServiceProviderDecorator(
63+
IServiceProvider decorated,
64+
ApiVersionSetBuilder versionSetBuilder ) : IServiceProvider
6365
{
64-
private readonly IServiceProvider decorated;
65-
private readonly ApiVersionSetBuilder versionSetBuilder;
6666
private ApiVersionSet? versionSet;
6767

68-
internal ServiceProviderDecorator(
69-
IServiceProvider decorated,
70-
ApiVersionSetBuilder versionSetBuilder )
71-
{
72-
this.decorated = decorated;
73-
this.versionSetBuilder = versionSetBuilder;
74-
}
75-
7668
public object? GetService( Type serviceType )
7769
{
7870
if ( typeof( ApiVersionSetBuilder ).Equals( serviceType ) )
@@ -89,19 +81,10 @@ internal ServiceProviderDecorator(
8981
}
9082
}
9183

92-
private sealed class EndpointDataSourceDecorator : EndpointDataSource
93-
{
94-
private readonly EndpointDataSource decorated;
95-
private readonly ApiVersionSetBuilder versionSetBuilder;
96-
97-
internal EndpointDataSourceDecorator(
84+
private sealed class EndpointDataSourceDecorator(
9885
EndpointDataSource decorated,
99-
ApiVersionSetBuilder versionSetBuilder )
100-
{
101-
this.decorated = decorated;
102-
this.versionSetBuilder = versionSetBuilder;
103-
}
104-
86+
ApiVersionSetBuilder versionSetBuilder ) : EndpointDataSource
87+
{
10588
public override IReadOnlyList<Endpoint> Endpoints => decorated.Endpoints;
10689

10790
public override IChangeToken GetChangeToken() => decorated.GetChangeToken();
@@ -175,19 +158,10 @@ private void CollateGroupApiVersions()
175158
}
176159
}
177160

178-
private sealed class EndpointDataSourceCollectionAdapter : ICollection<EndpointDataSource>
179-
{
180-
private readonly ICollection<EndpointDataSource> adapted;
181-
private readonly ApiVersionSetBuilder versionSetBuilder;
182-
183-
internal EndpointDataSourceCollectionAdapter(
161+
private sealed class EndpointDataSourceCollectionAdapter(
184162
ICollection<EndpointDataSource> adapted,
185-
ApiVersionSetBuilder versionSetBuilder )
186-
{
187-
this.adapted = adapted;
188-
this.versionSetBuilder = versionSetBuilder;
189-
}
190-
163+
ApiVersionSetBuilder versionSetBuilder ) : ICollection<EndpointDataSource>
164+
{
191165
public int Count => adapted.Count;
192166

193167
public bool IsReadOnly => adapted.IsReadOnly;

src/AspNetCore/WebApi/src/Asp.Versioning.Http/Routing/ApiVersionMatcherPolicy.cs

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -479,18 +479,11 @@ private ApiVersion TrySelectApiVersion( HttpContext httpContext, CandidateSet ca
479479
bool INodeBuilderPolicy.AppliesToEndpoints( IReadOnlyList<Endpoint> endpoints ) =>
480480
!ContainsDynamicEndpoints( endpoints ) && AppliesToEndpoints( endpoints );
481481

482-
private readonly struct Match
482+
private readonly struct Match( int index, int score, bool isExplicit )
483483
{
484-
internal readonly int Index;
485-
internal readonly int Score;
486-
internal readonly bool IsExplicit;
487-
488-
internal Match( int index, int score, bool isExplicit )
489-
{
490-
Index = index;
491-
Score = score;
492-
IsExplicit = isExplicit;
493-
}
484+
internal readonly int Index = index;
485+
internal readonly int Score = score;
486+
internal readonly bool IsExplicit = isExplicit;
494487

495488
internal int CompareTo( in Match other )
496489
{
@@ -499,22 +492,15 @@ internal int CompareTo( in Match other )
499492
}
500493
}
501494

502-
private sealed class ApiVersionCollator
495+
private sealed class ApiVersionCollator(
496+
IEnumerable<IApiVersionMetadataCollationProvider> providers,
497+
IOptions<ApiVersioningOptions> options )
503498
{
504-
private readonly IApiVersionMetadataCollationProvider[] providers;
505-
private readonly IOptions<ApiVersioningOptions> options;
499+
private readonly IApiVersionMetadataCollationProvider[] providers = providers.ToArray();
506500
private readonly object syncRoot = new();
507501
private IReadOnlyList<ApiVersion>? items;
508502
private int version;
509503

510-
internal ApiVersionCollator(
511-
IEnumerable<IApiVersionMetadataCollationProvider> providers,
512-
IOptions<ApiVersioningOptions> options )
513-
{
514-
this.providers = providers.ToArray();
515-
this.options = options;
516-
}
517-
518504
public IReadOnlyList<ApiVersion> Items
519505
{
520506
get

src/AspNetCore/WebApi/src/Asp.Versioning.Mvc.ApiExplorer/DefaultApiVersionDescriptionProvider.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,22 +125,16 @@ private void AppendDescriptions( ICollection<ApiVersionDescription> descriptions
125125
}
126126
}
127127

128-
private sealed class ApiVersionDescriptionCollection
128+
private sealed class ApiVersionDescriptionCollection(
129+
DefaultApiVersionDescriptionProvider provider,
130+
IEnumerable<IApiVersionMetadataCollationProvider> collators )
129131
{
130132
private readonly object syncRoot = new();
131-
private readonly DefaultApiVersionDescriptionProvider provider;
132-
private readonly IApiVersionMetadataCollationProvider[] collators;
133+
private readonly DefaultApiVersionDescriptionProvider provider = provider;
134+
private readonly IApiVersionMetadataCollationProvider[] collators = collators.ToArray();
133135
private IReadOnlyList<ApiVersionDescription>? items;
134136
private int version;
135137

136-
public ApiVersionDescriptionCollection(
137-
DefaultApiVersionDescriptionProvider provider,
138-
IEnumerable<IApiVersionMetadataCollationProvider> collators )
139-
{
140-
this.provider = provider;
141-
this.collators = collators.ToArray();
142-
}
143-
144138
public IReadOnlyList<ApiVersionDescription> Items
145139
{
146140
get

src/AspNetCore/WebApi/src/Asp.Versioning.Mvc.ApiExplorer/GroupedApiVersionDescriptionProvider.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,22 +143,16 @@ private void AppendDescriptions(
143143
}
144144
}
145145

146-
private sealed class ApiVersionDescriptionCollection
146+
private sealed class ApiVersionDescriptionCollection(
147+
GroupedApiVersionDescriptionProvider provider,
148+
IEnumerable<IApiVersionMetadataCollationProvider> collators )
147149
{
148150
private readonly object syncRoot = new();
149-
private readonly GroupedApiVersionDescriptionProvider provider;
150-
private readonly IApiVersionMetadataCollationProvider[] collators;
151+
private readonly GroupedApiVersionDescriptionProvider provider = provider;
152+
private readonly IApiVersionMetadataCollationProvider[] collators = collators.ToArray();
151153
private IReadOnlyList<ApiVersionDescription>? items;
152154
private int version;
153155

154-
public ApiVersionDescriptionCollection(
155-
GroupedApiVersionDescriptionProvider provider,
156-
IEnumerable<IApiVersionMetadataCollationProvider> collators )
157-
{
158-
this.provider = provider;
159-
this.collators = collators.ToArray();
160-
}
161-
162156
public IReadOnlyList<ApiVersionDescription> Items
163157
{
164158
get

src/AspNetCore/WebApi/src/Asp.Versioning.Mvc.ApiExplorer/VersionedApiDescriptionProvider.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,8 @@ private ApiVersion[] FlattenApiVersions( IList<ApiDescription> descriptions )
320320
return [.. versions];
321321
}
322322

323-
private sealed class SimpleConstraintResolver : IInlineConstraintResolver
323+
private sealed class SimpleConstraintResolver( IOptions<ApiExplorerOptions> options ) : IInlineConstraintResolver
324324
{
325-
private readonly IOptions<ApiExplorerOptions> options;
326-
327-
internal SimpleConstraintResolver( IOptions<ApiExplorerOptions> options ) => this.options = options;
328-
329325
public IRouteConstraint? ResolveConstraint( string inlineConstraint )
330326
{
331327
if ( options.Value.RouteConstraintName == inlineConstraint )

src/Client/src/Asp.Versioning.Http.Client/ApiVersionWriter.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,8 @@ public static IApiVersionWriter Combine( IEnumerable<IApiVersionWriter> apiVersi
5555
return new CombinedApiVersionWriter( writers );
5656
}
5757

58-
private sealed class CombinedApiVersionWriter : IApiVersionWriter
58+
private sealed class CombinedApiVersionWriter( IApiVersionWriter[] apiVersionWriters ) : IApiVersionWriter
5959
{
60-
private readonly IApiVersionWriter[] apiVersionWriters;
61-
62-
public CombinedApiVersionWriter( IApiVersionWriter[] apiVersionWriters ) =>
63-
this.apiVersionWriters = apiVersionWriters;
64-
6560
public void Write( HttpRequestMessage request, ApiVersion apiVersion )
6661
{
6762
for ( var i = 0; i < apiVersionWriters.Length; i++ )

0 commit comments

Comments
 (0)