Skip to content

Commit f2d3408

Browse files
committed
Merge pull request protocolbuffers#1301 from avgweb/master
Replace StringBuilder with TextWriter in JsonFormatter
2 parents 9242d9b + ad2d775 commit f2d3408

5 files changed

Lines changed: 157 additions & 131 deletions

File tree

csharp/src/Google.Protobuf.Test/GeneratedMessageTest.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,5 +710,14 @@ public void CustomDiagnosticMessage_Nested()
710710
Assert.AreEqual("{ \"singleForeignMessage\": { \"c\": 16, \"@cInHex\": \"10\" } }", message.ToString());
711711
Assert.AreEqual("{ \"singleForeignMessage\": { \"c\": 16 } }", JsonFormatter.Default.Format(message));
712712
}
713+
714+
[Test]
715+
public void CustomDiagnosticMessage_DirectToTextWriterCall()
716+
{
717+
var message = new ForeignMessage { C = 31 };
718+
var writer = new StringWriter();
719+
JsonFormatter.Default.Format(message, writer);
720+
Assert.AreEqual("{ \"c\": 31 }", writer.ToString());
721+
}
713722
}
714723
}

csharp/src/Google.Protobuf/Collections/MapField.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
using System;
3535
using System.Collections;
3636
using System.Collections.Generic;
37+
using System.IO;
3738
using System.Linq;
3839
using System.Text;
3940
using Google.Protobuf.Compatibility;
@@ -474,9 +475,9 @@ public int CalculateSize(Codec codec)
474475
/// </summary>
475476
public override string ToString()
476477
{
477-
var builder = new StringBuilder();
478-
JsonFormatter.Default.WriteDictionary(builder, this);
479-
return builder.ToString();
478+
var writer = new StringWriter();
479+
JsonFormatter.Default.WriteDictionary(writer, this);
480+
return writer.ToString();
480481
}
481482

482483
#region IDictionary explicit interface implementation

csharp/src/Google.Protobuf/Collections/RepeatedField.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
using System;
3434
using System.Collections;
3535
using System.Collections.Generic;
36+
using System.IO;
3637
using System.Text;
3738

3839
namespace Google.Protobuf.Collections
@@ -474,9 +475,9 @@ public void RemoveAt(int index)
474475
/// </summary>
475476
public override string ToString()
476477
{
477-
var builder = new StringBuilder();
478-
JsonFormatter.Default.WriteList(builder, this);
479-
return builder.ToString();
478+
var writer = new StringWriter();
479+
JsonFormatter.Default.WriteList(writer, this);
480+
return writer.ToString();
480481
}
481482

482483
/// <summary>

0 commit comments

Comments
 (0)