first pass at adding required changes
diff --git a/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs b/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
index d54507c..12d180d 100644
--- a/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
+++ b/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
@@ -445,13 +445,31 @@
/// </summary>
public override void WriteMessage(IMessageLite message)
{
+ StartMessage();
+ message.WriteTo(this);
+ EndMessage();
+ }
+
+ /// <summary>
+ /// Used to write the root-message preamble, in json this is the left-curly brace '{'.
+ /// After this call you can call IMessageLite.MergeTo(...) and complete the message with
+ /// a call to EndMessage().
+ /// </summary>
+ public override void StartMessage()
+ {
if (_isArray)
{
Seperator();
}
WriteToOutput("{");
_counter.Add(0);
- message.WriteTo(this);
+ }
+
+ /// <summary>
+ /// Used to complete a root-message previously started with a call to StartMessage()
+ /// </summary>
+ public override void EndMessage()
+ {
_counter.RemoveAt(_counter.Count - 1);
WriteLine("}");
Flush();