Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando StringWriter para serialização XML


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.