diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/HttpSigningConfiguration.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/HttpSigningConfiguration.mustache
index cc932cf7ebc7330c8a2e3c259fb364589b2a45d7..b621c92d6bfe9812a2f557fa99b25ff9d77e708f 100644
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/HttpSigningConfiguration.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/HttpSigningConfiguration.mustache
@@ -123,6 +123,7 @@ namespace {{packageName}}.Client
             var httpValues = HttpUtility.ParseQueryString(String.Empty);
             foreach (var parameter in requestOptions.QueryParameters)
             {
+#if (NETCOREAPP)
                 if (parameter.Value.Count > 1)
                 { // array
                     foreach (var value in parameter.Value)
@@ -132,13 +133,25 @@ namespace {{packageName}}.Client
                 }
                 else
                 {
-                    httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
-
+                httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
                 }
+#else
+                if (parameter.Value.Count > 1)
+                    { // array
+                    foreach (var value in parameter.Value)
+                    {
+                        httpValues.Add(parameter.Key + "[]", value);
+                    }
+                    }
+                    else
+                    {
+                        httpValues.Add(parameter.Key, parameter.Value[0]);
+                    }
+#endif
             }
             var uriBuilder = new UriBuilder(string.Concat(basePath, path));
-            uriBuilder.Query = httpValues.ToString();
-
+            uriBuilder.Query = httpValues.ToString().Replace("+", "%20");
+            
             var dateTime = DateTime.Now;
             String Digest = String.Empty;
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
index d39c892c7dcf1afd41c703d33cc154f1dc72de88..584900d1a30c04b100e9be3b555e642d1780db89 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
@@ -123,6 +123,7 @@ namespace Org.OpenAPITools.Client
             var httpValues = HttpUtility.ParseQueryString(String.Empty);
             foreach (var parameter in requestOptions.QueryParameters)
             {
+#if (NETCOREAPP)
                 if (parameter.Value.Count > 1)
                 { // array
                     foreach (var value in parameter.Value)
@@ -132,13 +133,25 @@ namespace Org.OpenAPITools.Client
                 }
                 else
                 {
-                    httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
-
+                httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
                 }
+#else
+                if (parameter.Value.Count > 1)
+                    { // array
+                    foreach (var value in parameter.Value)
+                    {
+                        httpValues.Add(parameter.Key + "[]", value);
+                    }
+                    }
+                    else
+                    {
+                        httpValues.Add(parameter.Key, parameter.Value[0]);
+                    }
+#endif
             }
             var uriBuilder = new UriBuilder(string.Concat(basePath, path));
-            uriBuilder.Query = httpValues.ToString();
-
+            uriBuilder.Query = httpValues.ToString().Replace("+", "%20");
+            
             var dateTime = DateTime.Now;
             String Digest = String.Empty;
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
index d39c892c7dcf1afd41c703d33cc154f1dc72de88..584900d1a30c04b100e9be3b555e642d1780db89 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
@@ -123,6 +123,7 @@ namespace Org.OpenAPITools.Client
             var httpValues = HttpUtility.ParseQueryString(String.Empty);
             foreach (var parameter in requestOptions.QueryParameters)
             {
+#if (NETCOREAPP)
                 if (parameter.Value.Count > 1)
                 { // array
                     foreach (var value in parameter.Value)
@@ -132,13 +133,25 @@ namespace Org.OpenAPITools.Client
                 }
                 else
                 {
-                    httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
-
+                httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
                 }
+#else
+                if (parameter.Value.Count > 1)
+                    { // array
+                    foreach (var value in parameter.Value)
+                    {
+                        httpValues.Add(parameter.Key + "[]", value);
+                    }
+                    }
+                    else
+                    {
+                        httpValues.Add(parameter.Key, parameter.Value[0]);
+                    }
+#endif
             }
             var uriBuilder = new UriBuilder(string.Concat(basePath, path));
-            uriBuilder.Query = httpValues.ToString();
-
+            uriBuilder.Query = httpValues.ToString().Replace("+", "%20");
+            
             var dateTime = DateTime.Now;
             String Digest = String.Empty;
 
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
index d39c892c7dcf1afd41c703d33cc154f1dc72de88..584900d1a30c04b100e9be3b555e642d1780db89 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/HttpSigningConfiguration.cs
@@ -123,6 +123,7 @@ namespace Org.OpenAPITools.Client
             var httpValues = HttpUtility.ParseQueryString(String.Empty);
             foreach (var parameter in requestOptions.QueryParameters)
             {
+#if (NETCOREAPP)
                 if (parameter.Value.Count > 1)
                 { // array
                     foreach (var value in parameter.Value)
@@ -132,13 +133,25 @@ namespace Org.OpenAPITools.Client
                 }
                 else
                 {
-                    httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
-
+                httpValues.Add(HttpUtility.UrlEncode(parameter.Key), parameter.Value[0]);
                 }
+#else
+                if (parameter.Value.Count > 1)
+                    { // array
+                    foreach (var value in parameter.Value)
+                    {
+                        httpValues.Add(parameter.Key + "[]", value);
+                    }
+                    }
+                    else
+                    {
+                        httpValues.Add(parameter.Key, parameter.Value[0]);
+                    }
+#endif
             }
             var uriBuilder = new UriBuilder(string.Concat(basePath, path));
-            uriBuilder.Query = httpValues.ToString();
-
+            uriBuilder.Query = httpValues.ToString().Replace("+", "%20");
+            
             var dateTime = DateTime.Now;
             String Digest = String.Empty;