From dd71370cf1887180c390cb7c206d774ca7370da7 Mon Sep 17 00:00:00 2001
From: Bart Koelman <10324372+bkoelman@users.noreply.github.com>
Date: Sat, 17 Feb 2024 00:42:51 +0100
Subject: [PATCH] Fix OpenAPI crash when running in VS with debugger attached,
 see https://github.com/json-api-dotnet/JsonApiDotNetCore/issues/1463

---
 src/JsonApiDotNetCore.OpenApi/ServiceCollectionExtensions.cs | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/JsonApiDotNetCore.OpenApi/ServiceCollectionExtensions.cs b/src/JsonApiDotNetCore.OpenApi/ServiceCollectionExtensions.cs
index 7cefd50a03..cc9c0f179c 100644
--- a/src/JsonApiDotNetCore.OpenApi/ServiceCollectionExtensions.cs
+++ b/src/JsonApiDotNetCore.OpenApi/ServiceCollectionExtensions.cs
@@ -40,13 +40,14 @@ private static void AddCustomApiExplorer(IServiceCollection services, IMvcCoreBu
         services.TryAddSingleton<NonPrimaryDocumentTypeFactory>();
         services.TryAddSingleton<ResourceFieldValidationMetadataProvider>();
 
-        services.TryAddSingleton<IApiDescriptionGroupCollectionProvider>(serviceProvider =>
+        // Not using TryAddSingleton, see https://github.com/json-api-dotnet/JsonApiDotNetCore/issues/1463.
+        services.Replace(ServiceDescriptor.Singleton<IApiDescriptionGroupCollectionProvider>(serviceProvider =>
         {
             var actionDescriptorCollectionProvider = serviceProvider.GetRequiredService<JsonApiActionDescriptorCollectionProvider>();
             var apiDescriptionProviders = serviceProvider.GetRequiredService<IEnumerable<IApiDescriptionProvider>>();
 
             return new ApiDescriptionGroupCollectionProvider(actionDescriptorCollectionProvider, apiDescriptionProviders);
-        });
+        }));
 
         mvcBuilder.AddApiExplorer();