Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo di StringWriter per la serializzazione XML

Un problema con StringWriter è che per impostazione predefinita non ti consente di impostare la codifica che pubblicizza, quindi puoi finire con un documento XML che pubblicizza la sua codifica come UTF-16, il che significa che devi codificarlo come UTF-16 se lo scrivi su un file. Ho una piccola classe per aiutare con questo però:

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

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

O se hai solo bisogno di UTF-8 (che è tutto ciò di cui ho spesso bisogno):

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

Per quanto riguarda il motivo per cui non hai potuto salvare il tuo XML nel database, dovrai fornirci maggiori dettagli su cosa è successo quando hai provato, se vuoi che siamo in grado di diagnosticarlo/correggerlo.