Um problema com
StringWriter
é que por padrão ele não permite que você defina a codificação que ele anuncia - então você pode acabar com um documento XML anunciando sua codificação como UTF-16, o que significa que você precisa codificá-lo como UTF-16 se você escrever para um arquivo. Eu tenho uma pequena classe para ajudar com isso:public sealed class StringWriterWithEncoding : StringWriter
{
public override Encoding Encoding { get; }
public StringWriterWithEncoding (Encoding encoding)
{
Encoding = encoding;
}
}
Ou se você só precisa de UTF-8 (que é tudo que eu preciso com frequência):
public sealed class Utf8StringWriter : StringWriter
{
public override Encoding Encoding => Encoding.UTF8;
}
Quanto ao motivo pelo qual você não conseguiu salvar seu XML no banco de dados - você terá que nos fornecer mais detalhes sobre o que aconteceu quando você tentou, se quiser que possamos diagnosticá-lo/corrigir.