From 9db82b23b2dc617454be832962b084fa918cbc98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:49:18 +0000 Subject: [PATCH 1/2] Bump Swashbuckle.AspNetCore from 10.0.2-preview.2077 to 10.1.0 --- updated-dependencies: - dependency-name: Swashbuckle.AspNetCore dependency-version: 10.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-versions.props b/package-versions.props index 0d5a3c9c1..56e5f3529 100644 --- a/package-versions.props +++ b/package-versions.props @@ -5,7 +5,7 @@ 0.4.1 2.14.1 13.0.4 - 10.0.1 + 10.1.0 4.3.1 From 6c53baf4853e569a8e9ec39fbcecb7e39698eb7c Mon Sep 17 00:00:00 2001 From: Bart Koelman <10324372+bkoelman@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:25:11 +0100 Subject: [PATCH 2/2] Remove reflection-based workaround --- .../SchemaRepositoryExtensions.cs | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaRepositoryExtensions.cs b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaRepositoryExtensions.cs index f6f05fded..5b94d0937 100644 --- a/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaRepositoryExtensions.cs +++ b/src/JsonApiDotNetCore.OpenApi.Swashbuckle/SchemaRepositoryExtensions.cs @@ -1,5 +1,4 @@ using System.Diagnostics.CodeAnalysis; -using System.Reflection; using Microsoft.OpenApi; using Swashbuckle.AspNetCore.SwaggerGen; @@ -7,28 +6,6 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle; internal static class SchemaRepositoryExtensions { - private const string ReservedIdsFieldName = "_reservedIds"; - private static readonly FieldInfo ReservedIdsField = GetReservedIdsField(); - - private static FieldInfo GetReservedIdsField() - { - FieldInfo? field = typeof(SchemaRepository).GetField(ReservedIdsFieldName, BindingFlags.Instance | BindingFlags.NonPublic); - - if (field == null) - { - throw new InvalidOperationException($"Failed to locate private field '{ReservedIdsFieldName}' " + - $"in type '{typeof(SchemaRepository).FullName}' in assembly '{typeof(SchemaRepository).Assembly.FullName}'."); - } - - if (field.FieldType != typeof(Dictionary)) - { - throw new InvalidOperationException($"Unexpected type '{field.FieldType}' of private field '{ReservedIdsFieldName}' " + - $"in type '{typeof(SchemaRepository).FullName}' in assembly '{typeof(SchemaRepository).Assembly.FullName}'."); - } - - return field; - } - public static OpenApiSchemaReference LookupByType(this SchemaRepository schemaRepository, Type schemaType) { ArgumentNullException.ThrowIfNull(schemaRepository); @@ -48,24 +25,4 @@ public static bool TryLookupByTypeSafe(this SchemaRepository schemaRepository, T referenceSchema = result ? obliviousReferenceSchema : null; return result; } - - public static void ReplaceSchemaId(this SchemaRepository schemaRepository, Type oldSchemaType, string newSchemaId) - { - ArgumentNullException.ThrowIfNull(schemaRepository); - ArgumentNullException.ThrowIfNull(oldSchemaType); - ArgumentException.ThrowIfNullOrEmpty(newSchemaId); - - if (schemaRepository.TryLookupByTypeSafe(oldSchemaType, out OpenApiSchemaReference? referenceSchema)) - { - string oldSchemaId = referenceSchema.GetReferenceId(); - - IOpenApiSchema targetSchema = schemaRepository.Schemas[oldSchemaId]; - - schemaRepository.Schemas.Remove(oldSchemaId); - schemaRepository.Schemas.Add(newSchemaId, targetSchema); - - var reservedIds = (Dictionary)ReservedIdsField.GetValue(schemaRepository)!; - reservedIds.Remove(oldSchemaType); - } - } }