From 9c2443bcdd4c1733d0d030ae3602f6ba5a7b6738 Mon Sep 17 00:00:00 2001 From: Kristian Hellang Date: Mon, 15 Mar 2021 21:57:06 +0100 Subject: [PATCH] Move MVC factory registration into MVC-specific extension method --- src/ProblemDetails/Mvc/MvcBuilderExtensions.cs | 4 ++++ src/ProblemDetails/ProblemDetailsExtensions.cs | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ProblemDetails/Mvc/MvcBuilderExtensions.cs b/src/ProblemDetails/Mvc/MvcBuilderExtensions.cs index 92751ed..c354ec7 100644 --- a/src/ProblemDetails/Mvc/MvcBuilderExtensions.cs +++ b/src/ProblemDetails/Mvc/MvcBuilderExtensions.cs @@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; +using MvcProblemDetailsFactory = Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory; namespace Hellang.Middleware.ProblemDetails.Mvc { @@ -18,6 +19,9 @@ public static class MvcBuilderExtensions /// The . public static IMvcBuilder AddProblemDetailsConventions(this IMvcBuilder builder) { + // Forward the MVC problem details factory registration to the factory used by the middleware. + builder.Services.TryAddSingleton(p => p.GetRequiredService()); + builder.Services.TryAddEnumerable( ServiceDescriptor.Transient, ProblemDetailsApiBehaviorOptionsSetup>()); diff --git a/src/ProblemDetails/ProblemDetailsExtensions.cs b/src/ProblemDetails/ProblemDetailsExtensions.cs index cb03825..e69faad 100644 --- a/src/ProblemDetails/ProblemDetailsExtensions.cs +++ b/src/ProblemDetails/ProblemDetailsExtensions.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using MvcProblemDetailsFactory = Microsoft.AspNetCore.Mvc.Infrastructure.ProblemDetailsFactory; namespace Hellang.Middleware.ProblemDetails { @@ -33,7 +32,6 @@ public static IServiceCollection AddProblemDetails(this IServiceCollection servi } services.TryAddSingleton(); - services.TryAddSingleton(p => p.GetRequiredService()); services.TryAddSingleton(); services.TryAddEnumerable(ServiceDescriptor.Transient, ProblemDetailsOptionsSetup>());