[.Net] IFormatProvider XmlTextWriter veranderen

Pagina: 1
Acties:

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
Situatie: ik maak gebruik van een externe library om SVG (Scalable Vector Graphics) te schrijven met behulp van C#. Als de hele object boom gebouwd is dan gebruik ik WriteSVGString (de methode maakt SVG) om de output te krijgen zodat ik hem kan zien in Adobe's Viewer.

Probleem: WriteSVGString maakt gebruik van een XmlTextWriter, deze schrijft standaard in de taal van de server (NL). Met als gevolg dat decimale getallen met komma's geschreven worden. Adobe's SVG Viewer wil echter punten als scheidingsteken in decimale getallen, met als gevolg dat mn output fucked up raakt.

Oplossingen:
- de taal van de thread veranderen, dit leek echter niet te werken (?) voor de XmlTextWriter
- de taal van de XmlTextWriter veranderen, dit kan echter niet (FormatProvider is read-only)

Ik heb al dom weg een replace gedaan van , -> . op de output, maar dat werkt niet goed, want SVG gebruikt een komma als lijstscheidingsteken.

Weet misschien misschien iemand hoe ik de XmlTextWriter kan beinvloeden zodat ie getallen met punten schrijft?

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


Verwijderd

Waarschijnlijk geef je een StringWriter mee aan de contructor van XmltextWriter.
Je kan dan een andere IFormatProvider meegeven aan de constructor van StringWriter.

Het is namelijk de functie van de TextWriter om de formattering van objecten te regelen. XmlTextWriter roept bijvoorbeeld gewoon de TextWriter.Write(double) aan...