Using StringWriter for XML Serialization

One problem with StringWriter is that by default it doesn’t let you set the encoding which it advertises – so you can end up with an XML document advertising its encoding as UTF-16, which means you need to encode it as UTF-16 if you write it to a file. I have a small class to help with that though:

public sealed class StringWriterWithEncoding : StringWriter
{
    public override Encoding Encoding { get; }

    public StringWriterWithEncoding (Encoding encoding)
    {
        Encoding = encoding;
    }    
}

Or if you only need UTF-8 (which is all I often need):

public sealed class Utf8StringWriter : StringWriter
{
    public override Encoding Encoding => Encoding.UTF8;
}

As for why you couldn’t save your XML to the database – you’ll have to give us more details about what happened when you tried, if you want us to be able to diagnose/fix it.

Leave a Comment