Wie macht man serialisieren eines XDocument-Objekts?
Ich serialisieren möchten eine XDocument
Objekt. Ich schrieb diesen code.
XDocument signup_xml_file = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("signup_xml_file"),
new XElement("Student",
new XElement("univ_id", univ_id),
new XElement("personal_id",personal_id),
new XElement("user_name", user_name)));
client.Connect(host_name, port);
//connect to the server .
bf.Serialize(client.GetStream(), signup_xml_file); //serialize the signup_xml_file
Bekomme ich die folgende exception, wenn versucht zu serialisieren der XDocument
. Gibt es eine Möglichkeit, um die XDocument
Klasse Serializable, oder gibt es einen anderen Weg zu schicken, meine XDocument
?
Typ 'System.Xml.Linq -.XDocument' in Assembly 'System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " ist nicht als serialisierbar markiert.
InformationsquelleAutor user983195 | 2011-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
XDocuments sollen nicht serialisiert werden. In gewisser Weise sind Sie serialisierungsprogramme selbst.
Aber Sie können einfach schreiben Sie:
signup_xml_file.Save(client.GetStream());
die beseitigt auch serializer overhead.
Edit:
Und auf der anderen Seite müssen Sie
Nein, die andere Seite kann genauso einfach laden Sie es aus dem Stream. Sehen Sie Auf Bearbeiten. Es wird keine Notwendigkeit für eine Datei, wo der Serializer nicht braucht.
InformationsquelleAutor Henk Holterman
Wenn Sie möchten mehr Kontrolle über das serialisieren von
XDocument
verwenden Sie dieWriteTo
- Funktion und erstellen Sie Ihre eigenenXmlWriter
.Hier ein Beispiel:
InformationsquelleAutor Drew Noakes
Ich sehe keinen Grund, warum Sie wollen würde, um zu serialisieren der
XDocument
Objekt. Einfach serialisieren der XML-string, den Sie bekommen können durch den AufrufToString()
auf das Dokument.Und ich sehe keinen Grund, mit binären Serialisierung hier überhaupt. Wenn Sie wirklich brauchen es nicht, Sie können schreiben Sie einfach den XML-string an den Ausgang.
können Sie mehr erklären, was du meinst ??
Wollen Sie nicht senden Sie die
XDocument
Objekt serialisiert mit binärer Serialisierung. Sie möchten, senden Sie die eigentliche XML-Dokument als string. Um das zu tun, müssen Sie die Zeichenfolge aus derXDocument
.Mit
ToString
ist gut geeignet für kleine XML-Dokumente, aber wenn Sie mit großen XML-Dokumenten, dann ist es besser, die Arbeit mit streams zu vermeiden Zuweisung riesige Brocken von Speicher nur für ein paar Momente. Streams damit alles reibungslos läuft durch die Reduzierung GC Druck. Meine Antwort zeigt, was ich meine.Ein guter Grund, um serialise ein XDocument-wird zum verschlüsseln der Inhalte in einem Rutsch. So ist dies plausibel. In dem Fall verwenden Sie die XmlTextWriter schreiben in einen string. Dann verschlüsseln Sie die Zeichenfolge.
InformationsquelleAutor svick