Skip to content

Commit ce59749

Browse files
fix: Restore constructor backwards compatibility on old .NET versions.
1 parent d970e8e commit ce59749

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/http/httpClient/HttpClientRequestAdapter.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System;
66
using System.Collections.Generic;
7+
using System.ComponentModel;
78
using System.Diagnostics;
89
#if NET5_0_OR_GREATER
910
using System.Diagnostics.CodeAnalysis;
@@ -48,7 +49,6 @@ public class HttpClientRequestAdapter : IRequestAdapter, IDisposable
4849
#elif NETSTANDARD2_0 || NETFRAMEWORK
4950
private static readonly Version defaultHttpVersion = HttpVersion.Version11;
5051
#endif
51-
#if NET5_0_OR_GREATER
5252
/// <summary>
5353
/// Initializes a new instance of the <see cref="HttpClientRequestAdapter"/> class.
5454
/// <param name="authenticationProvider">The authentication provider.</param>
@@ -57,8 +57,18 @@ public class HttpClientRequestAdapter : IRequestAdapter, IDisposable
5757
/// <param name="httpClient">The native HTTP client.</param>
5858
/// <param name="observabilityOptions">The observability options.</param>
5959
/// </summary>
60+
#if NET5_0_OR_GREATER
6061
public HttpClientRequestAdapter(IAuthenticationProvider authenticationProvider, IParseNodeFactory? parseNodeFactory = null, ISerializationWriterFactory? serializationWriterFactory = null, HttpClient? httpClient = null, ObservabilityOptions? observabilityOptions = null)
6162
#else
63+
[EditorBrowsable(EditorBrowsableState.Never)]
64+
public HttpClientRequestAdapter(IAuthenticationProvider authenticationProvider, IParseNodeFactory? parseNodeFactory, ISerializationWriterFactory? serializationWriterFactory, HttpClient? httpClient, ObservabilityOptions? observabilityOptions)
65+
: this(authenticationProvider, parseNodeFactory, serializationWriterFactory, httpClient, observabilityOptions, httpVersion: null)
66+
{
67+
// Constructor without HttpVersion for runtime backwards compatibility. Adding a new
68+
// optional parameter provides *compile-time* backwards compatibility but throws a
69+
// MissingMethodException at runtime.
70+
}
71+
6272
/// <summary>
6373
/// Initializes a new instance of the <see cref="HttpClientRequestAdapter"/> class.
6474
/// <param name="authenticationProvider">The authentication provider.</param>

0 commit comments

Comments
 (0)