Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden von StringWriter für die XML-Serialisierung

Ein Problem mit StringWriter ist, dass Sie standardmäßig nicht die Codierung festlegen können, die es ankündigt - so dass Sie am Ende ein XML-Dokument erhalten können, das seine Codierung als UTF-16 ankündigt, was bedeutet, dass Sie es als UTF-16 codieren müssen, wenn Sie es schreiben eine Datei. Ich habe jedoch eine kleine Klasse, die dabei hilft:

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

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

Oder wenn Sie nur UTF-8 benötigen (was ich oft brauche):

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

Warum Sie Ihr XML nicht in der Datenbank speichern konnten, müssen Sie uns weitere Einzelheiten darüber mitteilen, was passiert ist, als Sie es versucht haben, wenn Sie möchten, dass wir es diagnostizieren/beheben können.