Sytuację dokonuję serializacji obiektu w aplikacji C# VS2003/.Net 1.1. Potrzebuję jednak serializacji bez instrukcji przetwarzania. Klasa XmlSerializer wypuszcza coś takiego:Pominięcie instrukcji przetwarzania XML podczas serializacji obiektu
<?xml version="1.0" encoding="utf-16" ?>
<MyObject>
<Property1>Data</Property1>
<Property2>More Data</Property2>
</MyObject>
Czy istnieje jakiś sposób, aby dostać coś jak następuje, bez przetwarzania powstałego tekstu, aby usunąć tag?
<MyObject>
<Property1>Data</Property1>
<Property2>More Data</Property2>
</MyObject>
Dla tych, którzy są ciekawi, mój kod wygląda następująco ...
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
StringBuilder builder = new StringBuilder();
using (TextWriter stringWriter = new StringWriter(builder))
{
serializer.Serialize(stringWriter, comments);
return builder.ToString();
}
Ale to wymaga jeszcze po przetworzeniu rezultat do usunięcia początkowych i końcowych znaczników MyContainingElement, nie? Chociaż przynajmniej będą one znane, więc to dobrze ... –
Grałem z tym i zastąpiłem WriteStartElement z WriteRaw ("") i pozbyłem się WriteEndElement - wtedy wszystko, co musiałem zrobić, aby uzyskać dobre wyniki było TrimStart() BOM wyłączone. Chłodny! –