Un problème avec StringWriter
est que par défaut, il ne vous permet pas de définir l'encodage qu'il annonce - vous pouvez donc vous retrouver avec un document XML annonçant son encodage en UTF-16, ce qui signifie que vous devez l'encoder en UTF-16 si vous l'écrivez à un fichier. J'ai une petite classe pour aider avec ça :
public sealed class StringWriterWithEncoding : StringWriter
{
public override Encoding Encoding { get; }
public StringWriterWithEncoding (Encoding encoding)
{
Encoding = encoding;
}
}
Ou si vous n'avez besoin que d'UTF-8 (ce qui est tout ce dont j'ai souvent besoin) :
public sealed class Utf8StringWriter : StringWriter
{
public override Encoding Encoding => Encoding.UTF8;
}
Quant à savoir pourquoi vous n'avez pas pu enregistrer votre XML dans la base de données - vous devrez nous donner plus de détails sur ce qui s'est passé lorsque vous avez essayé, si vous voulez que nous puissions diagnostiquer/réparer le problème.