Skip to content

Commit c691d85

Browse files
Remove back-compat workarounds used in .NET 8
1 parent 7458530 commit c691d85

File tree

2 files changed

+0
-129
lines changed

2 files changed

+0
-129
lines changed

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

@@ -153,8 +150,6 @@ private static void AddApiVersioningServices( IServiceCollection services )
153150
services.TryAddEnumerable( Singleton<IApiVersionMetadataCollationProvider, EndpointApiVersionMetadataCollationProvider>() );
154151
services.TryAddTransient<IEndpointInspector, DefaultEndpointInspector>();
155152
services.Replace( WithLinkGeneratorDecorator( services ) );
156-
TryAddProblemDetailsRfc7231Compliance( services );
157-
TryAddErrorObjectJsonOptions( services );
158153
}
159154

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

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

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

0 commit comments

Comments
 (0)