ERLEDIGT
NEIN
NEIN
ANTWORTEN
17
17
ZUGRIFFE
2464
2464
EMPFEHLEN
-
Hallo,
ich versuch jetzt schon die ganze Zeit, dieses XmlNode-Array zu serialisieren und über Remoting zu versenden, bekomme es aber einfach nicht hin.
Kann mir vieleicht irgendjemand einen Tipp geben, welchen Formatter, Serializer und welchen Stream ich dafür benutzen muss.
Vielen Dank schonmal
Gloki
-
Hallo Gloki!
Das XMLNode-Array wird von selber serialisiert. Dafür ist das Framework doch da.
Wir haben hier im Forum ein 5 Sterne Remoting Tutorial (C#).
Schau es Dir mal an und wenn Du noch fragen hast, frag einfach.
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Danke erstmal für deine schnelle Antwort, aber wenn
dann müsste es ja reichen, wenn ich im Host den Array überDas XMLNode-Array wird von selber serialisiert.
Code :1 2 3 4 5
Dim nodeArray as XmlNode() --- Code --- Return nodeArray
zurückgebe. Aber wenn ich es so mache, bekomme ich eine Fehlermeldung, dass XmlNode nicht als serialisierbar markiert ist.
Deswegen wollte ich das Ganze irgendwie in einen Stream (z.B. MemoryStream) serialisieren und diesen dann an meinen Client schicken, der diesen wieder deserialisiert.
Aber das bekomme ich irgendwie nicht hin, denn ich schaffe es nicht das Array zu serialisieren.
Ich hoffe, ich habe mich jetzt verständlicher ausgedrückt
Ach ja, ich benutze Visual Basic.Net, falls das einen Unterschied macht
Danke schonmal für weitere Antworten
Gloki
-
Ich mach selber kaum was mit Remoting da ich lieber via Sockets & SOAP also unabhängige Geschichten entwickle.
Wo ist jetzt genau das Problem? Ich weiss nicht wie Du das jetzt anstellst.
Schau mal in diesen Thread. Struktur in Datei speichern - Thread
Wenn Du noch fragen hast dann poste doch mal das bissel VB Code.
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Ich meinte nicht das ich nicht weiss wie das geht.
Zitat von cosmochaosmaker

Meinte jetzt das ich nicht weiss wie Du das jetzt versuchst,
weil Du deinen Code nicht gepostet hast.MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Also, ich habe folgende Funktion:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Public Function serialize(ByVal obj As Object, ByVal myType As Type) As MemoryStream Dim serializer As New XmlSerializer(myType) Dim ms As New MemoryStream Try serializer.Serialize(ms, obj) ms.Position = 0 Return ms Catch e As Exception Console.WriteLine("Failed to serialize. Reason: " & e.Message)ausgeben Throw End Try End Function
Mit dieser kann ich z.B. eine Variable vom Typ XmlDocument in einen MemoryStream serialisieren und diesen kann ich dann zurückgeben:
Code :1 2 3 4
Dim myDoc as XmlDocument myDoc.Load("myXml.xml") Return Serialize(myDoc, GetType(XmlDocument))
Mein Problem ist nun, dass ich mit dieser Funktion keinen XmlNode-Array serialisieren kann, da ich keinen XmlSerializer mit dem Typ XmlNode() (also dem Array) erstellen kann.
Also so:
Code :1 2 3 4 5
Dim nodeArray As XmlNode() --- Hier fülle ich den nodeArray --- Return Serialize(nodeArray, GetType(XmlNode()))
Im Moment löse ich das Problem, indem ich jeden einzelnen Knoten in dem Array serialisiere und zurückgebe, aber das ist keine gute Lösung, da ich dann immer wieder dieselbe Funktion in meinem Host aufrufe. Könnte ich das ganze Array zurückgeben, müsste ich diese Funktion nur einmal aufrufen
Und ich suche jetzt eigentlich nur nach einer Möglichkeit, dieses Array komplett zu serialisieren (wenn das überhaupt geht
)
-
Wie währe es wenn Du dein NodeArray in eine RootNode packst und diese serialisierst.

Desweiteren ist es verschwendung das Ding in ein XML zu serialisieren.
Damit willst jetzt ja nichts anderes anfangen als es wieder zu deserialisieren.
Daher kannst es auch Binar und somit drei mal kleiner serialisieren.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Sorry, von RootNode habe ich noch nie was gehörtWie währe es wenn Du dein NodeArray in eine RootNode packst und diese serialisierst.
Und in der Hilfe finde ich nur dieses
Das kann doch nicht das Richtige sein, oder?Document.RootNode
The RootNode property returns the console's root Node object. This property is read-only.
Property RootNode As Node
Property Value
The console's root node.
Example Code
' Retrieve the document's RootNode property.
Dim objRoot As MMC20.Node
Set objRoot = objDoc.RootNode
' Use the RootNode object.
' ...
' Free the object when done.
Set objRoot = Nothing
Requirements
Client: Included in Windows XP.
Server: Included in Windows Server 2003.
Und wenn ich das Ganze binär serialisieren will, dann krieg ich wieder die Fehlermeldung, dass das XmlDocument nicht als serialisierbar markiert ist.
Trotzdem nochmal Danke
Gloki
-
Mit RootNode meinte ich eine Node die dein NodeArray hält.
Desweiteren musst Du schon alles was Du serialisieren willst,
mit dem Serializable-Attribut versehen.
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Ähm ja, jetzt wo ich verstehe, was du meinst, hört sich diese Idee gut anMit RootNode meinte ich eine Node die dein NodeArray hält.
Werde ich gleich mal versuchen
Genau das ist mein Problem, wie kann ich der XmlNode-Klasse das Serializable-Attribut zuweisen?Desweiteren musst Du schon alles was Du serialisieren willst,
mit dem Serializable-Attribut versehen.
Muss ich die Klasse dann irgendwie überschreiben, oder sowas?
-
Meines erachtens muss auch das Objekt in dem sich die Node befindetwie kann ich der XmlNode-Klasse das Serializable-Attribut zuweisen?
auch als Serializable markiert werden. Weiss nicht mehr genau...
Oder versuchs so. Wenn ich jetzt Zeit hätte würd ich's mal testen.Muss ich die Klasse dann irgendwie überschreiben, oder sowas?
Stecke jetzt aber im Stress, sorry.MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Für Stress muss man sich doch nicht entschuldigenStecke jetzt aber im Stress, sorry.
Und schließlich sollst du mir ja nicht das Ganze Programm schreiben
Aber vieleicht könntest du mir nochmal einen kleinen Denkanstoss geben.
Ich hab mich nochmal ein bisschen im Internet schlau gemacht und ein bisschen rumprobiert und bin auf folgendes Ergebnis gekommen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Imports System Imports System.Xml Imports System.Runtime.Serialization <Serializable()> _ Public Class MyXmlDocument Inherits XmlDocument Implements ISerializable Public Sub New() MyBase.New() End Sub Public Overloads Sub load(ByVal filename As String) MyBase.Load(filename) End Sub Public Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) Implements System.Runtime.Serialization.ISerializable.GetObjectData info.AddValue("xmlDocument", Me.OuterXml, GetType(XmlDocument)) End Sub End Class
Damit komme ich mal soweit, dass mein Host mir ein Xml-File lädt und dieses dann über Return an meinen Client gibt.
Aber der Client meckert dann so:
Ich hab aber leider keine Ahnung, wie ich den Konstruktor umschreiben muss. Oder wie ich ihn aufrufen muss.Der für die Deserialisierung eines Objektes mit dem Typ XmlDocSerializable.MyXmlDocument erforderliche Konstruktor wurde nicht gefunden
Hast du vieleicht eine Idee?
-
Uups, hab Dich übersehen, sorry.
Du brauchst hier eigentlich nur das Srializable-Attribut.
Das ISerializable Interface ist nur zum verändern des De/Serialisierungsverhaltens gedacht.
.NET Framework Class Library ISerializable Interface - MSDN
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Ok, ich hab es jetzt nochmal nur mit dem Serializable-Attribut versucht, funktioniert aber auch nicht, dann meckert er wieder darüber, dass das XmlDocument nicht als serialisierbar markiert ist.
Ist jetzt aber auch egal, das Programm funktioniert mit dieser oben aufgeführten Serialize-Funktion.
Und ich hab jetzt leider keine Zeit und Lust mehr, mich mit diesem Problem ´rumzuschlagen
Aber Vielen Dank nochmal für alles, hast mir wirklich weitergeholfen
Gloki
-
Zitat von Gloki
- Mach ich kein VB
- Kann ich es nicht lesen

Frag nicht warum, bei mir geht es nicht!
- Hab ich selber noch nie versucht das XMLDocument zu serialisieren.
- Hab ich schon gesagt das ich im Moment keine Zeit hab es selber auszuprobieren.
- Hätte sich sicher schon jemand gemeldet der's schon versucht hat und weiss das es nicht geht.
- Versuchs mit nem anderen/einfachen Objekt
- Versuch es plain (ohne den Schnickschnack drum herrum)
- Und kein Problem, helfe gerne.

MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
Ähnliche Themen
-
[C#] Element aus einer XMLNode lesen
Von TsEnG im Forum .NET Windows FormsAntworten: 6Letzter Beitrag: 16.09.10, 11:15 -
[C#] XmlElement aus XmlNode auslesen
Von Henig im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 11.08.10, 08:36 -
XmlNode vorhanden?
Von yooti im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 14.01.10, 04:13 -
Serialisieren
Von nex_m im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 02.04.09, 19:18 -
XMLNode suchen und löschen
Von pixelknipsr im Forum PHPAntworten: 0Letzter Beitrag: 23.03.07, 14:29





Zitieren
Login





