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;
+ }
+ }
+ }
+}