Type Reason InvalidOperationException The XmlWriter.WriteState is not WriteState.Start.
The encoding level of the document is determined by how the writer is implemented. For example, if an System.Text.Encoding object is specified in the XmlTextWriter constructor, this determines the value of the encoding attribute. This method does not create a standalone attribute.
When WriteStartDocument is called the writer validates that what you are writing is a well-formed XML document. For example, it checks that the XML declaration is the first node, that one and only one root-level element exists, and so on. If this method is not called, the writer assumes an XML fragment is being written and applies no root level rules.
If WriteStartDocument has been called and then the XmlWriter.WriteProcessingInstruction(string, string) method is used to create another XML declaration, an exception will be thrown.
For the asynchronous version of this method, see XmlWriter.WriteStartDocumentAsync.