Skip to content

Commit 9e5f4d3

Browse files
Remove back-compat workarounds used in .NET 8
1 parent 25afc48 commit 9e5f4d3

2 files changed

Lines changed: 0 additions & 129 deletions

File tree

src/AspNetCore/WebApi/src/Asp.Versioning.Http/DependencyInjection/IServiceCollectionExtensions.cs

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,6 @@ public static IApiVersioningBuilder EnableApiVersionBinding( this IApiVersioning
128128
services.TryAddEnumerable( Singleton<IProblemDetailsWriter, TWriter>() );
129129
services.Configure( setup ?? DefaultErrorObjectJsonConfig );
130130

131-
// TODO: remove with TryAddErrorObjectJsonOptions in 9.0+
132-
services.AddTransient<ErrorObjectsAdded>();
133-
134131
return services;
135132
}
136133

@@ -154,8 +151,6 @@ private static void AddApiVersioningServices( IServiceCollection services )
154151
services.TryAddEnumerable( Singleton<IApiVersionMetadataCollationProvider, EndpointApiVersionMetadataCollationProvider>() );
155152
services.TryAddTransient<IEndpointInspector, DefaultEndpointInspector>();
156153
services.Replace( WithLinkGeneratorDecorator( services ) );
157-
TryAddProblemDetailsRfc7231Compliance( services );
158-
TryAddErrorObjectJsonOptions( services );
159154
}
160155

161156
// REF: https://github.com/dotnet/aspnetcore/blob/main/src/Http/Routing/src/DependencyInjection/RoutingServiceCollectionExtensions.cs#L96
@@ -234,75 +229,4 @@ LinkGenerator NewFactory( IServiceProvider serviceProvider )
234229
return Describe( typeof( LinkGenerator ), factory, lifetime );
235230
}
236231
}
237-
238-
// TODO: Fixed and released; remove in .NET 10.0
239-
// BUG: https://github.com/dotnet/aspnetcore/issues/52577
240-
private static void TryAddProblemDetailsRfc7231Compliance( IServiceCollection services )
241-
{
242-
var descriptor = services.FirstOrDefault( IsDefaultProblemDetailsWriter );
243-
244-
if ( descriptor == null )
245-
{
246-
return;
247-
}
248-
249-
var index = services.IndexOf( descriptor );
250-
var decoratedType = descriptor.ImplementationType!;
251-
var lifetime = descriptor.Lifetime;
252-
253-
services[index] = Describe( typeof( IProblemDetailsWriter ), sp => NewProblemDetailsWriter( sp, decoratedType ), lifetime );
254-
services.Add( Describe( decoratedType, decoratedType, lifetime ) );
255-
256-
static bool IsDefaultProblemDetailsWriter( ServiceDescriptor serviceDescriptor ) =>
257-
serviceDescriptor.ServiceType == typeof( IProblemDetailsWriter ) &&
258-
serviceDescriptor.ImplementationType?.FullName == "Microsoft.AspNetCore.Http.DefaultProblemDetailsWriter";
259-
260-
static Rfc7231ProblemDetailsWriter NewProblemDetailsWriter( IServiceProvider serviceProvider, Type decoratedType ) =>
261-
new( (IProblemDetailsWriter) serviceProvider.GetRequiredService( decoratedType ) );
262-
}
263-
264-
// TODO: retain for 8.1.x back-compat, but remove in 9.0+ in favor of AddErrorObjects for perf
265-
private static void TryAddErrorObjectJsonOptions( IServiceCollection services )
266-
{
267-
var serviceType = typeof( IProblemDetailsWriter );
268-
var implementationType = typeof( ErrorObjectWriter );
269-
var markerType = typeof( ErrorObjectsAdded );
270-
var hasErrorObjects = false;
271-
var hasErrorObjectsJsonConfig = false;
272-
273-
for ( var i = 0; i < services.Count; i++ )
274-
{
275-
var service = services[i];
276-
277-
if ( !hasErrorObjects &&
278-
service.ServiceType == serviceType &&
279-
implementationType.IsAssignableFrom( service.ImplementationType ) )
280-
{
281-
hasErrorObjects = true;
282-
283-
if ( hasErrorObjectsJsonConfig )
284-
{
285-
break;
286-
}
287-
}
288-
else if ( service.ServiceType == markerType )
289-
{
290-
hasErrorObjectsJsonConfig = true;
291-
292-
if ( hasErrorObjects )
293-
{
294-
break;
295-
}
296-
}
297-
}
298-
299-
if ( hasErrorObjects && !hasErrorObjectsJsonConfig )
300-
{
301-
services.Configure<JsonOptions>( DefaultErrorObjectJsonConfig );
302-
}
303-
}
304-
305-
// TEMP: this is a marker class to test whether Error Objects have been explicitly added. remove in 9.0+
306-
#pragma warning disable CA1812 // Avoid uninstantiated internal classes
307-
private sealed class ErrorObjectsAdded { }
308232
}

src/AspNetCore/WebApi/src/Asp.Versioning.Http/Rfc7231ProblemDetailsWriter.cs

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)