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 "&lt;root&gt;". After this call you can call IMessageLite.MergeTo(...) and 

         /// complete the message with a call to EndMessage().