Skip to content

Commit e45c5f7

Browse files
feat: lazy initialize queryParamsToAdd (#1907)
Co-authored-by: Chris Pulman <chris.pulman@yahoo.com>
1 parent e13386f commit e45c5f7

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

Refit/RequestBuilderImplementation.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ bool paramsContainsCancellationToken
646646
ret.Content = multiPartContent;
647647
}
648648

649-
var queryParamsToAdd = new List<KeyValuePair<string, string?>>();
649+
List<KeyValuePair<string, string?>>? queryParamsToAdd = null;
650650
var headersToAdd = restMethod.Headers.Count > 0 ?
651651
new Dictionary<string, string?>(restMethod.Headers)
652652
: null;
@@ -737,6 +737,7 @@ bool paramsContainsCancellationToken
737737
|| queryAttribute != null
738738
)
739739
{
740+
queryParamsToAdd ??= [];
740741
AddQueryParameters(restMethod, queryAttribute, param, queryParamsToAdd, i, parameterInfo);
741742
continue;
742743
}
@@ -756,9 +757,9 @@ bool paramsContainsCancellationToken
756757
var urlTarget = BuildRelativePath(basePath, restMethod, paramList);
757758

758759
var uri = new UriBuilder(new Uri(BaseUri, urlTarget));
759-
ParseExistingQueryString(uri, queryParamsToAdd);
760+
ParseExistingQueryString(uri, ref queryParamsToAdd);
760761

761-
if (queryParamsToAdd.Count != 0)
762+
if (queryParamsToAdd is not null && queryParamsToAdd.Count != 0)
762763
{
763764
uri.Query = CreateQueryString(queryParamsToAdd);;
764765
}
@@ -1172,11 +1173,12 @@ var value in ParseEnumerableQueryParameterValue(
11721173
}
11731174
}
11741175

1175-
static void ParseExistingQueryString(UriBuilder uri, List<KeyValuePair<string, string?>> queryParamsToAdd)
1176+
static void ParseExistingQueryString(UriBuilder uri, ref List<KeyValuePair<string, string?>>? queryParamsToAdd)
11761177
{
11771178
if (string.IsNullOrEmpty(uri.Query))
11781179
return;
11791180

1181+
queryParamsToAdd ??= [];
11801182
var query = HttpUtility.ParseQueryString(uri.Query);
11811183
var index = 0;
11821184
foreach (var key in query.AllKeys)

0 commit comments

Comments
 (0)