Added IDisposable to ICodedOutputStream
diff --git a/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs b/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
index 97fc6b2..a9cfcc1 100644
--- a/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
+++ b/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
@@ -75,8 +75,13 @@
{
if (disposing)
{
+ if (_output.WriteState != WriteState.Closed && _output.WriteState != WriteState.Start)
+ _output.WriteEndDocument();
+
_output.Close();
}
+
+ base.Dispose(disposing);
}
/// <summary>
@@ -112,6 +117,15 @@
}
/// <summary>
+ /// Completes any pending write operations
+ /// </summary>
+ public override void Flush()
+ {
+ _output.Flush();
+ base.Flush();
+ }
+
+ /// <summary>
/// Used to write the root-message preamble, in xml this is open element for RootElementName,
/// by default "<root>". After this call you can call IMessageLite.MergeTo(...) and
/// complete the message with a call to EndMessage().