diff --git a/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.cs b/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.cs index c5bf1fe89299..bad86c44ad6d 100644 --- a/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.cs +++ b/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.cs @@ -18,7 +18,7 @@ namespace ServiceClientGenerator.Generators.Marshallers /// Class to produce the template output /// - #line 1 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 1 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")] public partial class JsonRPCRequestMarshaller : JsonRPCStructureMarshaller { @@ -29,7 +29,7 @@ public partial class JsonRPCRequestMarshaller : JsonRPCStructureMarshaller public override string TransformText() { - #line 6 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 6 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" AddLicenseHeader(); @@ -41,28 +41,28 @@ public override string TransformText() this.Write("using ThirdParty.Json.LitJson;\r\n\r\n#pragma warning disable CS0612,CS0618\r\nnamespac" + "e "); - #line 14 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 14 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace)); #line default #line hidden this.Write(".Model.Internal.MarshallTransformations\r\n{\r\n\t/// \r\n\t/// "); - #line 17 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 17 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write(" Request Marshaller\r\n\t/// \r\n\tpublic class "); - #line 19 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 19 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("RequestMarshaller : IMarshaller\r\n /// \r\n\t\tpublic IReque" + "st Marshall("); - #line 36 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 36 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default @@ -96,14 +96,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) this.Write("Request publicRequest)\r\n\t\t{\r\n\t\t\tIRequest request = new DefaultRequest(publicReque" + "st, \""); - #line 38 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 38 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace)); #line default #line hidden this.Write("\");\r\n"); - #line 39 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 39 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" SetCompressionAlgorithmEncoding(this.Operation); @@ -115,21 +115,21 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\tstring target = \""); - #line 45 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 45 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceModel.TargetPrefix)); #line default #line hidden this.Write("."); - #line 45 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 45 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("\";\r\n\t\t\trequest.Headers[\"X-Amz-Target\"] = target;\r\n"); - #line 47 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 47 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } if (this.Operation.HttpMethod != "GET" && this.Operation.HttpMethod != "DELETE") @@ -143,14 +143,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.Headers[\"Content-Type\"] = \""); - #line 55 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 55 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceModel.Customizations.OverrideContentType)); #line default #line hidden this.Write("\";\r\n"); - #line 56 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 56 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else if (this.Config.ServiceModel.Type != ServiceType.Rest_Json) @@ -161,14 +161,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.Headers[\"Content-Type\"] = \"application/x-amz-json-"); - #line 61 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 61 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceModel.JsonVersion)); #line default #line hidden this.Write("\";\r\n"); - #line 62 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 62 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else if (this.Operation.RequestHasBodyMembers || this.Operation.RequestPayloadMember != null) @@ -179,7 +179,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.Headers[\"Content-Type\"] = \"application/json\";\r\n"); - #line 68 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 68 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } } @@ -189,21 +189,21 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write(" request.Headers[Amazon.Util.HeaderKeys.XAmzApiVersion] = \""); - #line 72 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 72 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceModel.APIVersion)); #line default #line hidden this.Write("\";\r\n request.HttpMethod = \""); - #line 73 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 73 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.HttpMethod)); #line default #line hidden this.Write("\";\r\n\r\n"); - #line 75 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 75 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" var requestStructure = this.Operation.RequestStructure; @@ -221,14 +221,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.ResourcePath = \""); - #line 87 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 87 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.RequestUri)); #line default #line hidden this.Write("\";\r\n"); - #line 88 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 88 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" var payload = this.Operation.RequestPayloadMember; @@ -240,11 +240,15 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line default #line hidden - this.Write("\t\t\tusing (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCultu" + - "re))\r\n\t\t\t{\r\n\t\t\t\tJsonWriter writer = new JsonWriter(stringWriter);\r\n\t\t\t\twriter.Va" + - "lidate = false;\r\n"); + this.Write(@" using (MemoryStream memoryStream = new MemoryStream()) + { + using (StreamWriter streamWriter = new InvariantCultureStreamWriter(memoryStream)) + { + JsonWriter writer = new JsonWriter(streamWriter); + writer.Validate = false; +"); - #line 100 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 102 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" if (shouldMarshallPayload) { @@ -252,11 +256,11 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line default #line hidden - this.Write("\t\t\t\tvar context = new JsonMarshallerContext(request, writer);\r\n"); + this.Write("\t\t\t\t var context = new JsonMarshallerContext(request, writer);\r\n"); - #line 105 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 107 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" - ProcessStructure(0, "publicRequest." + payload.PropertyName, payload.Shape); + ProcessStructure(1, "publicRequest." + payload.PropertyName, payload.Shape); } else { @@ -264,29 +268,28 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line default #line hidden - this.Write("\t\t\t\twriter.WriteObjectStart();\r\n\t\t\t\tvar context = new JsonMarshallerContext(reque" + - "st, writer);\r\n"); + this.Write("\t\t\t\t writer.WriteObjectStart();\r\n\t\t\t\t var context = new JsonMarshallerConte" + + "xt(request, writer);\r\n"); - #line 113 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 115 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" - ProcessMembers(1, "publicRequest", this.Operation.RequestBodyMembers); + ProcessMembers(2, "publicRequest", this.Operation.RequestBodyMembers); #line default #line hidden - this.Write("\t\t\t\twriter.WriteObjectEnd();\r\n"); + this.Write("\t\t\t\t writer.WriteObjectEnd();\r\n"); - #line 117 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 119 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } #line default #line hidden - this.Write("\t\t\t\tstring snippet = stringWriter.ToString();\r\n\t\t\t\trequest.Content = System.Text." + - "Encoding.UTF8.GetBytes(snippet);\r\n"); + this.Write(" }\r\n\r\n request.Content = memoryStream.ToArray();\r\n"); - #line 122 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 125 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" GenerateRequestChecksumHandling(this.Operation, "snippet"); @@ -295,7 +298,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\t}\r\n\r\n"); - #line 127 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 130 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else if (payload?.Shape.IsString == true) @@ -306,14 +309,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.Content = System.Text.Encoding.UTF8.GetBytes(publicRequest."); - #line 132 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 135 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(payload.PropertyName)); #line default #line hidden this.Write(");\r\n"); - #line 133 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 136 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else if (payload?.IsMemoryStream == true) @@ -324,14 +327,14 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.ContentStream = publicRequest."); - #line 138 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 141 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.Write(this.ToStringHelper.ToStringWithCulture(payload.PropertyName)); #line default #line hidden this.Write(" ?? new MemoryStream();\r\n"); - #line 139 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 142 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" var requiresLength = payload.RequiresLength; if (!requiresLength && payload.Shape.IsStreaming && this.Operation.AuthType == OperationAuthType.V4UnsignedBody) @@ -352,7 +355,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) } "); - #line 154 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 157 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else @@ -367,7 +370,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) "onException(\"Cannot determine stream length for the payload when content-length " + "is required.\");\r\n\t\t\t}\r\n"); - #line 165 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 168 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } @@ -379,7 +382,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) "ader] =\r\n\t\t\t\trequest.ContentStream.Length.ToString(CultureInfo.InvariantCulture)" + ";\r\n"); - #line 174 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 177 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } @@ -389,7 +392,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) this.Write("\t\t\trequest.Headers[Amazon.Util.HeaderKeys.ContentTypeHeader] = \"application/octet" + "-stream\";\r\n"); - #line 178 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 181 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } else if (payload?.Shape.IsPrimitiveType == true) @@ -409,7 +412,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) this.Write("\t\t\tvar content = \"{}\";\r\n request.Content = System.Text.Encoding.UTF8.G" + "etBytes(content);\r\n"); - #line 193 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 196 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" GenerateRequestChecksumHandling(this.Operation, "content"); @@ -417,7 +420,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line default #line hidden - #line 196 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 199 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } @@ -435,7 +438,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\t\t\trequest.UseQueryString = true;\r\n"); - #line 209 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 212 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" } // We skip endpoint host prefix handling for S3 and S3 Control as it's implemented by endpoint rules. @@ -449,7 +452,7 @@ public IRequest Marshall(AmazonWebServiceRequest input) #line hidden this.Write("\r\n\t\t\treturn request;\r\n\t\t}\r\n"); - #line 220 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" + #line 223 "C:\Projects\aws-sdk-net-v4\generator\ServiceClientGeneratorLib\Generators\Marshallers\JsonRPCRequestMarshaller.tt" this.AddRequestSingletonMethod(); diff --git a/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.tt b/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.tt index e671d1a0dffc..a657377d0ba6 100644 --- a/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.tt +++ b/generator/ServiceClientGeneratorLib/Generators/Marshallers/JsonRPCRequestMarshaller.tt @@ -93,32 +93,35 @@ namespace <#=this.Config.Namespace #>.Model.Internal.MarshallTransformations if (this.Operation.RequestHasBodyMembers || shouldMarshallPayload) { #> - using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture)) - { - JsonWriter writer = new JsonWriter(stringWriter); - writer.Validate = false; + using (MemoryStream memoryStream = new MemoryStream()) + { + using (StreamWriter streamWriter = new InvariantCultureStreamWriter(memoryStream)) + { + JsonWriter writer = new JsonWriter(streamWriter); + writer.Validate = false; <# if (shouldMarshallPayload) { #> - var context = new JsonMarshallerContext(request, writer); + var context = new JsonMarshallerContext(request, writer); <# - ProcessStructure(0, "publicRequest." + payload.PropertyName, payload.Shape); + ProcessStructure(1, "publicRequest." + payload.PropertyName, payload.Shape); } else { #> - writer.WriteObjectStart(); - var context = new JsonMarshallerContext(request, writer); + writer.WriteObjectStart(); + var context = new JsonMarshallerContext(request, writer); <# - ProcessMembers(1, "publicRequest", this.Operation.RequestBodyMembers); + ProcessMembers(2, "publicRequest", this.Operation.RequestBodyMembers); #> - writer.WriteObjectEnd(); + writer.WriteObjectEnd(); <# } #> - string snippet = stringWriter.ToString(); - request.Content = System.Text.Encoding.UTF8.GetBytes(snippet); + } + + request.Content = memoryStream.ToArray(); <# GenerateRequestChecksumHandling(this.Operation, "snippet"); #> diff --git a/sdk/src/Core/Amazon.Runtime/Internal/Util/InvariantCultureStreamWriter.cs b/sdk/src/Core/Amazon.Runtime/Internal/Util/InvariantCultureStreamWriter.cs new file mode 100644 index 000000000000..5aeef27995fa --- /dev/null +++ b/sdk/src/Core/Amazon.Runtime/Internal/Util/InvariantCultureStreamWriter.cs @@ -0,0 +1,45 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +using System; +using System.Globalization; +using System.IO; + +namespace Amazon.Runtime.Internal.Util +{ + /// + /// A that uses the invariant culture for formatting. + /// + public class InvariantCultureStreamWriter : StreamWriter + { + /// + /// Initializes a new instance of the class with the specified stream. + /// + /// The stream to write to. + public InvariantCultureStreamWriter(Stream stream) + : base(stream) + { + } + + /// + public override IFormatProvider FormatProvider + { + get + { + return CultureInfo.InvariantCulture; + } + } + } +}