sql >> Base de Datos >  >> RDS >> Sqlserver

Usando StringWriter para la serialización XML

Un problema con StringWriter es que, de forma predeterminada, no le permite establecer la codificación que anuncia, por lo que puede terminar con un documento XML que anuncia su codificación como UTF-16, lo que significa que debe codificarlo como UTF-16 si lo escribe en un archivo. Sin embargo, tengo una pequeña clase para ayudar con eso:

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

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

O si solo necesita UTF-8 (que es todo lo que necesito a menudo):

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

En cuanto a por qué no pudo guardar su XML en la base de datos, deberá brindarnos más detalles sobre lo que sucedió cuando lo intentó, si desea que podamos diagnosticarlo/arreglarlo.