XmlSerializer, TextWriter
Når jeg serialize et Object array sådan:XmlSerializer x = new XmlSerializer(typeof(object[]));
TextWriter writer = new StreamWriter("C:\\temp.xml");
x.Serialize(writer,ar); (ar = Object[])
Så bliver outputtet fint:
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anyType xsi:type="xsd:int">20</anyType>
<anyType xsi:type="xsd:int">20</anyType>
</ArrayOfAnyType>
Men jeg ønsker ikke en fil, men istedet for xml'et som en string.
Derfor bruger jeg:
XmlSerializer x = new XmlSerializer(typeof(object[]));
System.Text.StringBuilder builder = new System.Text.StringBuilder();
TextWriter writer = new StringWriter(builder);
x.Serialize(writer,ar);
string str = builder.ToString();
men så bliver xml'et IKKE korrekt:
str =
<?xml version=\"1.0\" encoding=\"utf-16\"?>
\r\n<ArrayOfAnyType xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
\r\n <anyType xsi:type=\"xsd:int\">20</anyType>
\r\n <anyType xsi:type=\"xsd:int\">20</anyType>
\r\n</ArrayOfAnyType>
Der er nogle problemmer med \r\n og encoding
Nogen ideer på en løsning?
