diff --git a/src/Microsoft.OpenApi/Models/References/OpenApiResponseReference.cs b/src/Microsoft.OpenApi/Models/References/OpenApiResponseReference.cs index 0e4ac30ac..2ac8aee27 100644 --- a/src/Microsoft.OpenApi/Models/References/OpenApiResponseReference.cs +++ b/src/Microsoft.OpenApi/Models/References/OpenApiResponseReference.cs @@ -28,9 +28,7 @@ public OpenApiResponse Target get { _target ??= Reference.HostDocument?.ResolveReferenceTo(_reference); - OpenApiResponse resolved = new OpenApiResponse(_target); - if (!string.IsNullOrEmpty(_description)) resolved.Description = _description; - return resolved; + return _target; } } @@ -75,21 +73,25 @@ internal OpenApiResponseReference(string referenceId, OpenApiResponse target) /// public override string Description { - get => string.IsNullOrEmpty(_description) ? Target.Description : _description; + get => string.IsNullOrEmpty(_description) ? Target?.Description : _description; set => _description = value; } + private IDictionary _content; /// - public override IDictionary Content { get => Target?.Content; set => Target.Content = value; } + public override IDictionary Content { get => _content is not null ? _content : Target?.Content; set => _content = value; } + private IDictionary _headers; /// - public override IDictionary Headers { get => Target.Headers; set => Target.Headers = value; } + public override IDictionary Headers { get => _headers is not null ? _headers : Target?.Headers; set => _headers = value; } + private IDictionary _links; /// - public override IDictionary Links { get => Target.Links; set => Target.Links = value; } + public override IDictionary Links { get => _links is not null ? _links : Target?.Links; set => _links = value; } + private IDictionary _extensions; /// - public override IDictionary Extensions { get => Target.Extensions; set => Target.Extensions = value; } + public override IDictionary Extensions { get => _extensions is not null ? _extensions : Target?.Extensions; set => _extensions = value; } /// public override void SerializeAsV3(IOpenApiWriter writer) @@ -97,7 +99,6 @@ public override void SerializeAsV3(IOpenApiWriter writer) if (!writer.GetSettings().ShouldInlineReference(_reference)) { _reference.SerializeAsV3(writer); - return; } else { @@ -111,7 +112,6 @@ public override void SerializeAsV31(IOpenApiWriter writer) if (!writer.GetSettings().ShouldInlineReference(_reference)) { _reference.SerializeAsV31(writer); - return; } else { @@ -125,7 +125,6 @@ public override void SerializeAsV2(IOpenApiWriter writer) if (!writer.GetSettings().ShouldInlineReference(_reference)) { _reference.SerializeAsV2(writer); - return; } else {