From 8a0df9fa713e9251a41c444fd6515fba3fbdd59a Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Tue, 18 Jun 2024 11:19:02 -0700 Subject: [PATCH] Don't use ToArray unless needed for JSON source gen. --- src/Facility.CodeGen.CSharp/CSharpGenerator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Facility.CodeGen.CSharp/CSharpGenerator.cs b/src/Facility.CodeGen.CSharp/CSharpGenerator.cs index e8b9dff..745783b 100644 --- a/src/Facility.CodeGen.CSharp/CSharpGenerator.cs +++ b/src/Facility.CodeGen.CSharp/CSharpGenerator.cs @@ -865,7 +865,7 @@ private CodeGenFile GenerateHttpMapping(HttpServiceInfo httpServiceInfo, Context code.WriteLine($"RequestBodyType = typeof({requestBodyFieldTypeName.TrimEnd('?')}),"); if (httpMethodInfo.RequestBodyField.ContentType != null) code.WriteLine($"RequestBodyContentType = {CSharpUtility.CreateString(httpMethodInfo.RequestBodyField.ContentType)},"); - code.WriteLine($"GetRequestBody = request => request.{requestBodyFieldName}{(requestBodyFieldInfo.Kind == ServiceTypeKind.Array ? "?.ToArray()" : "")},"); + code.WriteLine($"GetRequestBody = request => request.{requestBodyFieldName}{(ShouldGenerateJsonSource && requestBodyFieldInfo.Kind == ServiceTypeKind.Array ? "?.ToArray()" : "")},"); code.WriteLine($"CreateRequest = body => new {requestTypeName} {{ {requestBodyFieldName} = ({requestBodyFieldTypeName}) body }},"); } else if (httpMethodInfo.RequestNormalFields.Any()) @@ -934,7 +934,7 @@ private CodeGenFile GenerateHttpMapping(HttpServiceInfo httpServiceInfo, Context if (bodyField.ContentType != null) code.WriteLine($"ResponseBodyContentType = {CSharpUtility.CreateString(bodyField.ContentType)},"); code.WriteLine($"MatchesResponse = response => response.{responseBodyFieldName} != null,"); - code.WriteLine($"GetResponseBody = response => response.{responseBodyFieldName}{(bodyFieldType.Kind == ServiceTypeKind.Array ? "?.ToArray()" : "")},"); + code.WriteLine($"GetResponseBody = response => response.{responseBodyFieldName}{(ShouldGenerateJsonSource && bodyFieldType.Kind == ServiceTypeKind.Array ? "?.ToArray()" : "")},"); code.WriteLine($"CreateResponse = body => new {responseTypeName} {{ {responseBodyFieldName} = ({responseBodyFieldTypeName}) body }},"); } }